我正在尝试配置Solr 4以使用UUID,到目前为止我没有成功
通过阅读文档,我看到了两种不同的方法来配置schema.xml以使用UUID(两者都不起作用)
对于我需要写的两个
<fieldType name="uuid" class="solr.UUIDField" indexed="true" />
Run Code Online (Sandbox Code Playgroud)
选项1:添加:
<field name="id" type="uuid" indexed="true" stored="true" default="NEW" multiValued="false"/>
Run Code Online (Sandbox Code Playgroud)
并确保删除该行
<uniqueKey>id</uniqueKey>
Run Code Online (Sandbox Code Playgroud)
选项2添加:
<field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="false" />
Run Code Online (Sandbox Code Playgroud)
这两个选项都无法正常工作并返回org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:初始化QueryElevationComponent时出错.
我还尝试使用配置向colrconfig.xml文件添加一行:
<updateRequestProcessorChain name="uuid">
<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">uniqueKey</str>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
Run Code Online (Sandbox Code Playgroud)
谢谢,
西蒙
经过一些工作后,解决方案是:
在schema.xml中,添加(或编辑)字段字段
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
Run Code Online (Sandbox Code Playgroud)
在solr config中,更新链并将链添加到处理程序(例如:for/update/extract):
<updateRequestProcessorChain name="uuid">
<processor class="solr.UUIDUpdateProcessorFactory">
<str name="fieldName">id</str>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>`
<requestHandler name="/update/extract"
startup="lazy"
class="solr.extraction.ExtractingRequestHandler" >
<lst name="defaults">
<str name="lowernames">true</str>
<str name="uprefix">ignored_</str>
<str name="captureAttr">true</str>
<str name="fmap.a">links</str>
<str name="fmap.div">ignored_</str>
<str name="update.chain">uuid</str>
</lst>
</requestHandler>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4712 次 |
| 最近记录: |