我有一份文件
<entity name="Category" dataSource="ds1" pk="CategoryId"
query="SELECT CategoryId, Description, ImageUrl FROM Category">
<field column="CategoryId" name="CategoryId" />
<entity name="PackCategory" pk="PackId, CategoryId"
query="SELECT PackId FROM PackCategory WHERE CategoryId = ${Category.CategoryId}" >
<entity name="Pack" pk="PackId"
query="SELECT PackId, IsActive FROM Pack WHERE PackId = ${PackCategory.PackId}" >
<field column="IsActive" name="IsActive" />
<entity name="PartnerPackTrans" pk="PackId, PartnerId" transformer="TemplateTransformer">
query="SELECT PartnerId FROM PartnerPackTrans WHERE PackId = ${Pack.PackId}" >
<field column="PartnerId" name="PartnerId" />
</entity>
</entity>
</entity>
</entity>
</entity>
我的唯一ID是(类别.类别ID, Package . Package ID,合作伙伴 Package 交易.合作伙伴ID)的组合。我如何定义这是schema.xml中唯一字段中的solr
更新后,通过各种职位,我添加了这个我的solr-config文件
<updateRequestProcessorChain name="id">
<processor class="solr.CloneFieldUpdateProcessorFactory">
<str name="source">CategoryId</str>
<str name="source">PartnerId</str>
<str name="dest">id</str>
</processor>
<processor class="solr.ConcatFieldUpdateProcessorFactory">
<str name="fieldName">id</str>
<str name="delimiter">-</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
但是我在solr文档中得到这个错误,它缺少必需的uniqueKey字段:标识符
我在引用这篇文章Solr Composite Unique key from existing fields in schema
我使用的是solr版本5.3
1条答案
按热度按时间pbpqsu0x1#
在Solr中,您可以添加唯一键:
声明可以用来通知Solr,在您的索引中有一个字段对于所有文档应该是唯一的。如果添加的文档包含与现有文档相同的该字段的值,则旧文档将被删除。
因此,在您的情况下,如果您的字段名为
unique
,则必须添加:更新
要回答您的意见,在您的
schema.xml
中,您可以创建一个新字段:之后,您可以复制要在新字段中使用的字段: