Solr4.0 如何配置使用UUID自动生成id值
2013-10-31 15:59
561 查看
原文链接http://blog.csdn.net/keepthinking_/article/details/8501058#comments
最近学习了Lucene,随便也学习了Solr,Solr规定每一条记录必须有一个主键值,用来唯一标识一条索引的记录,默认是使用id字段来作主键的(可以通过修改schema.xml文件更改),最烦的是这个主键不能设置自动增长,所以每添加一条记录,不得不手动为id字段赋值,如果不小心重复了,还很恶心的直接覆盖了原来的记录,所以在编程的时候不得不通过一些途径来维护这个id值,通过google发现了一个可以自动生成id值的方法,即让solr自动生成UUID值(Universal
Unique Identifiers通用唯一标识符),这样编程的时候就不用维护这个id值了,使用这种做法的缺点就是:id值不是数值连续的,它是一串字符,如:5bb977a7-8a4c-46d6-ae49-b4eefade080c
具体配置如下:(这是Solr 4.0的配置)
一、配置schema.xml文件
1、添加fieldType
2、添加主键id字段配置(注释或者删除原来的id字段配置,切记)
二、配置solrconfig.xml文件
1、注释掉以下的配置,原因及可能产出的异常参考:https://issues.apache.org/jira/browse/SOLR-3398
2、添加一个updateRequestProcessorChain配置
3、修改其中一个requestHandler配置,注意:上一步是添加,而这里是修改,如果直接添加的话,那么就会重复配置,这样后面的配置会覆盖前面的配置,本人就是很不幸的被默认的配置覆盖了我添加的配置,当时够郁闷的!
最近学习了Lucene,随便也学习了Solr,Solr规定每一条记录必须有一个主键值,用来唯一标识一条索引的记录,默认是使用id字段来作主键的(可以通过修改schema.xml文件更改),最烦的是这个主键不能设置自动增长,所以每添加一条记录,不得不手动为id字段赋值,如果不小心重复了,还很恶心的直接覆盖了原来的记录,所以在编程的时候不得不通过一些途径来维护这个id值,通过google发现了一个可以自动生成id值的方法,即让solr自动生成UUID值(Universal
Unique Identifiers通用唯一标识符),这样编程的时候就不用维护这个id值了,使用这种做法的缺点就是:id值不是数值连续的,它是一串字符,如:5bb977a7-8a4c-46d6-ae49-b4eefade080c
具体配置如下:(这是Solr 4.0的配置)
一、配置schema.xml文件
1、添加fieldType
<types> <!-- other field types --> <fieldType name="uuid" class="solr.UUIDField" indexed="true" /> </types>
2、添加主键id字段配置(注释或者删除原来的id字段配置,切记)
<field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="false" />
二、配置solrconfig.xml文件
1、注释掉以下的配置,原因及可能产出的异常参考:https://issues.apache.org/jira/browse/SOLR-3398
<searchComponent name="elevator" class="solr.QueryElevationComponent" > <str name="queryFieldType">string</str> <str name="config-file">elevate.xml</str> </searchComponent>
2、添加一个updateRequestProcessorChain配置
<updateRequestProcessorChain name="uuid"> <processor class="solr.UUIDUpdateProcessorFactory"> <str name="fieldName">id</str> </processor> <processor class="solr.RunUpdateProcessorFactory" /> </updateRequestProcessorChain>
3、修改其中一个requestHandler配置,注意:上一步是添加,而这里是修改,如果直接添加的话,那么就会重复配置,这样后面的配置会覆盖前面的配置,本人就是很不幸的被默认的配置覆盖了我添加的配置,当时够郁闷的!
<requestHandler name="/update" class="solr.UpdateRequestHandler"> <!-- See below for information on defining updateRequestProcessorChains that can be used by name on each Update Request --> <!-- <lst name="defaults"> <str name="update.chain">dedupe</str> </lst> --> <lst name="defaults"> <str name="update.chain">uuid</str> </lst> </requestHandler>
相关文章推荐
- Solr4.0 如何配置使用UUID自动生成id值
- Solr4.0 如何配置使用UUID自动生成id值
- Solr4.40 如何配置使用UUID自动生成id值
- Solr4.0 如何配置使用UUID自动生成id值
- solr5.3 如何配置使用UUID解决id覆盖问题
- Solr自动生成ID配置
- Solr自动生成ID配置
- Hibernate注解使用以及Spring整合 , hibernate 自动生成uuid类型的id 注解
- Solr4.0 怎么配置使用UUID自动生成id值
- 使用python如何自动生成docker nginx反向代理配置?
- Solr6.6.0学习(五)Solr对IK分词器的配置、Solr自动生成唯一ID、Solr服务器的增量和全量更新
- solr配置自动生成id
- 转载:如何使用XCodeFactory自动生成XML配置文件和对应的解析类
- 如何使用java自动生成数据表id,java.util.UUID类
- 如何使用XCodeFactory自动生成XML配置文件和对应的解析类?
- 如何使用CodeSmith自动生成C#代码
- 使用svcutil工具自动生成wcf调用的客户端代码和配置文件
- VS2013 MVC 4.0 无法添加服务引用,可以配置,但是无法生成引用类,在对象管理器里查找不到对应类,请问是何原因造成,如何解决
- Mybatis 如何自动生成bean dao xml 配置文件 generatorconfig.xml (main()方法自动生成更快捷)
- 使用generator自动生成Mybatis映射配置文件