博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr4.0 如何配置使用UUID自动生成id值
阅读量:4589 次
发布时间:2019-06-09

本文共 2608 字,大约阅读时间需要 8 分钟。

原文链接 

最近学习了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、注释掉以下的配置,原因及可能产出的异常参考:

string
elevate.xml

2、添加一个updateRequestProcessorChain配置

id

3、修改其中一个requestHandler配置,注意:上一步是添加,而这里是修改,如果直接添加的话,那么就会重复配置,这样后面的配置会覆盖前面的配置,本人就是很不幸的被默认的配置覆盖了我添加的配置,当时够郁闷的!

uuid

 

 

原文链接 

最近学习了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

 

[html]   
 
  1. <types>  
  2.     <!-- other field types -->  
  3.     <fieldType name="uuid" class="solr.UUIDField" indexed="true" />  
  4. </types>  

2、添加主键id字段配置(注释或者删除原来的id字段配置,切记

 

[html]   
 
  1. <field name="id" type="uuid" indexed="true" stored="true" required="true" multiValued="false" />  

 

二、配置solrconfig.xml文件

 

1、注释掉以下的配置,原因及可能产出的异常参考:

 

[html]   
 
  1. <searchComponent name="elevator" class="solr.QueryElevationComponent" >  
  2.   <str name="queryFieldType">string</str>  
  3.   <str name="config-file">elevate.xml</str>  
  4. </searchComponent>  
2、添加一个updateRequestProcessorChain配置

 

 

[html]   
 
  1. <updateRequestProcessorChain name="uuid">  
  2.     <processor class="solr.UUIDUpdateProcessorFactory">  
  3.         <str name="fieldName">id</str>  
  4.     </processor>  
  5.     <processor class="solr.RunUpdateProcessorFactory" />  
  6. </updateRequestProcessorChain>  
3、修改其中一个requestHandler配置,
注意:上一步是添加,而这里是修改,如果直接添加的话,那么就会重复配置,这样后面的配置会覆盖前面的配置,本人就是很不幸的被默认的配置覆盖了我添加的配置,当时够郁闷的!

 

 

[html]   
 
  1. <requestHandler name="/update" class="solr.UpdateRequestHandler">  
  2.     <!-- See below for information on defining   
  3.          updateRequestProcessorChains that can be used by name   
  4.          on each Update Request  
  5.       -->  
  6.     <!--  
  7.        <lst name="defaults">  
  8.          <str name="update.chain">dedupe</str>  
  9.        </lst>  
  10.        -->  
  11.     <lst name="defaults">  
  12.         <str name="update.chain">uuid</str>  
  13.     </lst>  
  14.   </requestHandler>  
 
0

转载于:https://www.cnblogs.com/gmq-sh/p/5885785.html

你可能感兴趣的文章
5. Longest Palindromic Substring (DP)
查看>>
sql语句一些简单的用法
查看>>
领域驱动设计之聚合与聚合根实例一
查看>>
selenium中各个模块操作:下拉框、鼠标悬浮连贯、拼图拖拽操作
查看>>
C# 调用Windows图片查看器
查看>>
Excel系列教程(1):如何自动填充单元格
查看>>
jQuery中的冒泡事件和阻止冒泡
查看>>
pythonchallenge闯关 第13题
查看>>
linux上很方便的上传下载文件工具rz和sz使用介绍
查看>>
React之特点及常见用法
查看>>
【WEB前端经验之谈】时间一年半,或沉淀、或从零开始。
查看>>
优云软件助阵GOPS·2017全球运维大会北京站
查看>>
java23中设计模式只责任链模式
查看>>
linux 装mysql的方法和步骤
查看>>
poj3667(线段树区间合并&区间查询)
查看>>
51nod1241(连续上升子序列)
查看>>
SqlSerch 查找不到数据
查看>>
集合相关概念
查看>>
Memcache 统计分析!
查看>>
(Python第四天)字符串
查看>>