gpt4 book ai didi

mysql - SOLR 多个数据源上的索引和搜索

转载 作者:行者123 更新时间:2023-11-29 14:23:06 25 4
gpt4 key购买 nike

我在搜索两个数据源时遇到问题。当我 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"/>

什么是问题?谢谢

最佳答案

Solr 中的 Id 需要唯一。
如果您插入具有相同 ID 的实体,则先前的记录将被覆盖。
Solr 不更新记录。它删除并重新插入记录。
如果您想要这两条记录,请定义一个唯一的 ID。
例如将 Artist 和 faqdata 添加到 id 之前,以便艺术家和 faqdata 不会互相覆盖。

选择 A.*, 'ARTIST_' || ID PRIMARY_ID 来自艺术家 A

选择 A.*, 'FAQDATA_' ||来自 FAQDATA A 的 ID PRIMARY_ID

并使用 PRIMARY_ID 作为主 ID 和唯一字段。

关于mysql - SOLR 多个数据源上的索引和搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11447990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com