2017-08-04 69 views
0

我正在寻找配置SOLR以基于某些数据查询表。 不幸的是,我不得不与数据库的安装方式一起工作,但这是我所追求的。Dynamic TableName SOLR数据导入处理程序

我有一个名为Company的表格将包含某个“前缀”值。 我想使用该前缀值来确定我应该为DIH查询哪些表。

作为一个快速示例:

<entity name="company" query="Select top 1 prefix from Company"> 
<field name="prefix" column="prefix"/> 
<entity name="item" query="select * from ${company.prefix}item"> 
<field column="ItemID" name="id"/> 
<field column="Description" name="description/> 
</entity> 
</entity> 

不过,我永远只能似乎得到1号文件,尽管含有超过20万行该表处理。

我做错了什么?

+0

不确定你使用的是哪个数据库,但不能将查询的表部分嵌入到主查询本身中吗?那么它会很容易 – Persimmonium

+0

我正在使用MSSQL。 – Xyphius

回答

0

我想你可以通过实现这一点:使用存储过程

  1. 。你可以从DIH调用一个sp,看看here
  2. 里面的存储过程,你可以根据需要做表查找,然后从真正的查询中返回结果。

取决于你对MSSql-s SQL有多好,你可能只需将所有内容放入单个SQL查询并直接在DIH中使用,但不确定。

+0

我最终使用了以下内容: 我最终使用了以下内容: 'declare @tablename nvarchar(50)set @tablename ='select * from ['+(select from top of 1 Company )+'item]'; EXECUTE sp_executesql @ tablename' – Xyphius