我在搜索两个dataSource时遇到问题。当我importAll时,我看到我的所有记录都被导入但是当我搜索时,我的结果中只有dataSource的2条记录。
在我的data-config.xml中:
<document>
<entity name="one" dataSource="ds-1" query="SELECT * FROM artist">
<field column="name" name="name" />
</entity>
<entity name="two" dataSource="ds-2" query="SELECT * FROM faqdata">
<field column="thema" name="thema" />
</entity>
</document>
在我的schema.xml中:
<fields>
<field name="id" type="int" indexed="true" stored="true" required="true" />
<field name="slug" type="string" indexed="false" stored="true"/>
<field name="name" type="text" indexed="true" stored="true" />
<field name="alt_name" type="text" indexed="false" stored="true"/>
<field name="created_at" type="date" indexed="false" stored="true"/>
<field name="updated_at" type="date" indexed="false" stored="true"/>
<field name="thema" type="text" indexed="true" stored="true" />
<field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
<dynamicField name="*" type="ignored" multiValued="true" />
</fields>
<uniqueKey>id</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
<copyField source="name" dest="text"/>
<copyField source="thema" dest="text"/>
什么是问题? 感谢
答案 0 :(得分:1)
Solr中的Ids需要是唯一的 如果插入具有相同ID的实体,则先前的记录将被覆盖 Solr不会更新记录。它删除并重新插入记录 如果您想要两个记录,请定义唯一ID 例如将艺术家和faqdata添加到id,以便艺术家和faqdata不会互相覆盖。
SELECT A. *,'ARTIST_'||来自艺术家的ID PRIMARY_ID
SELECT A. *,'FAQDATA_'||来自FAQDATA A的ID PRIMARY_ID
并使用PRIMARY_ID作为主要ID和唯一字段。