我正在从两个不同的数据源将数据导入 Solr 4.3.0。除了搜索结果不指示每个结果文档的原始数据源之外,这一切都很好。
是否有一种“正确”的方式将数据源(或实体名称)放入结果文档中?
我的 data-config.xml 看起来像这样(基于http://wiki.apache.org/solr/DataImportHandler#Multiple_DataSources中给出的示例):
<dataConfig>
<dataSource name="ds1" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//oracle-1:1521/DB1" user="SCHEMA1" password="Passw0rd1"/>
<dataSource name="ds2" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@//oracle-1:1521/DB2" user="SCHEMA2" password="Passw0rd2"/>
<document>
<entity name="apples" dataSource="ds1" pk="id" query="select id,name,color from apples" />
</entity>
<entity name="bannnas" dataSource="ds2" pk="id" query="select id,name,desc from bananas" />
</entity>
</document>
</dataConfig>
来自搜索的示例 XML 结果集如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">3</int>
<lst name="params">
<str name="indent">true</str>
<str name="q">yellow</str>
<str name="_">1370321809357</str>
<str name="wt">xml</str>
</lst>
</lst>
<result name="response" numFound="2" start="0">
<doc>
<str name="id">12</str>
<str name="name">Golden Delicious</str>
<str name="color">yellow</str></doc>
<doc>
<str name="id">5</str>
<str name="name">Cavendish group</str>
<str name="desc">Cavendish group is the common name for the triploid AAA group of Musa acuminata, by far the most popular cultivar by export volume. Cavendish bananas have a yellow skin and pale yellow inside when ripe.</str></doc>
</result>
</response>
请注意,我想知道给定结果的数据源的原因是结果实体具有不同的模式,因此需要由客户端应用程序以不同的方式解析/处理/呈现。很高兴看到其他以不同方式解决这个根本问题的答案。