虽然我是SOLR的新手,但我能够成功索引单个表 在很短的时间内。现在我们有搜索的要求 需要同时在多个表(多表索引)上发生。
我无法找到一种方法来索引SOLR中的多个表并进行搜索 在索引数据上。我尝试使用下面的数据配置格式,但它 只索引2个表中的任何一个(而不是两个表)。
DB-config.xml中
<dataConfig>
<dataSource driver="com.metamatrix.jdbc.MMDriver" url="jdbc:....." />
<document name="doc">
<entity name="table1"
query="select * from table1">
<field column="ID" name="ElementID" />
<field column="Name" name="ElementName" />
<field column="ElementType" name="ElementType" />
<field column="RepId" name="ElementRepId" />
</entity>
<entity name="table2"
query="select * from table2">
<field column="id" name="ElementPropertyID" />
<field column="Name" name="ElementPropertyName" />
<field column="DataType" name="ElementPropertyDataType" />
<field column="RepId" name="ElementPropertyRepId" />
</entity>
</document>
</dataConfig>
Schema.xml
<fields>
<field name="ElementID" type="string" indexed="true"
stored="true" />
<field name="ElementName" type="string" indexed="true"
stored="true" />
<field name="ElementType" type="string" indexed="true"
stored="true" />
<field name="ElementRepId" type="string" indexed="true"
stored="true" />
<field name="ElementPropertyID" type="string" indexed="true"
stored="true" />
<field name="ElementPropertyName" type="string" indexed="true"
stored="true" />
<field name="ElementPropertyDataType" type="string"
indexed="true" stored="true" />
<field name="ElementPropertyRepId" type="string" indexed="true"
stored="true" />
<dynamicField name="*" type="ignored" />
</fields>
<uniqueKey>ElementPropertyID</uniqueKey>
任何人都可以帮我解决问题的解决方案/指针。
答案 0 :(得分:0)
我认为这是因为你有两个独立的实体。 table1和table2之间是否有任何关系? 如果是,那么使用可以解决问题的连接进行单个查询。
有关DataImportHandler的更多信息,请参阅以下链接。 http://wiki.apache.org/solr/DataImportHandler#Oracle_Example