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"/>
非常感谢任何帮助。
答案 0 :(得分:2)
您可以使用uniqueKey
字段所需的任何类型。正如您可以从文档中读到的那样:
该声明可用于通知Solr有一个 索引中的字段,对于所有文档应该是唯一的。如果一个 添加的文档包含与此字段相同的值 现有文件,旧文件将被删除。
架构不一定要有uniqueKey字段。
请注意,如果您已启用QueryElevationComponent solrconfig.xml它要求模式具有类型的uniqueKey StrField。例如,它不能是一个int字段。
重要的是您的uniqueKey字段是唯一的,这意味着同一文档具有相同的标识符。只有这样,替换,如果现有的机制可以工作。使用uuid字段类型,您永远不会替换文档,因为您会自动为每个文档设置不同的ID。