0

Solr/Lucene 模式中的唯一键可以text_general代替吗?我已经尝试过了,但 Solr 并没有覆盖数据,它只是添加了另一行,从而复制了数据。

我已经从以下注释掉了solrconfig.xml

<searchComponent name="elevator" class="solr.QueryElevationComponent" >
<!-- pick a fieldType to analyze queries -->
<str name="queryFieldType">string</str>
<str name="config-file">elevate.xml</str>
</searchComponent>

我的schema.xml

<uniqueKey>_id</uniqueKey>
<field name="_id" type="text_general" indexed="true" stored="true" default="NEW"/>

任何帮助将不胜感激。

4

1 回答 1

2

您可以使用任何类型的uniqueKey字段。正如您可以从文档中看到的:

该声明可用于通知 Solr 您的索引中有一个字段对于所有文档应该是唯一的。如果添加的文档包含与现有文档相同的字段值,则旧文档将被删除。

架构不必具有 uniqueKey 字段。

请注意,如果您在 solrconfig.xml 中启用了 QueryElevationComponent,则它要求架构具有 StrField 类型的 uniqueKey。例如,它不能是 int 字段。

重要的是您的 uniqueKey 字段是唯一的,这意味着同一个文档具有相同的标识符。只有这样,如果现有机制可以工作,则替换。使用uuid字段类型,您永远不会替换文档,因为您将自动为每个文档设置不同的 id。

于 2012-09-25T14:26:58.457 回答