solr 设置id为自动生成的uuid

版本为solr3.5

http://wiki.apache.org/solr/UniqueKey
这里讲到如何添加uuid,具体为在schema.xml中加入:
 <fieldType name="uuid" class="solr.UUIDField" indexed="true" />

 <field name="id" type="uuid" indexed="true" stored="true" required="true"/>



这么设置之后, 启动报错:
QueryElevationComponent requires the schema to have a uniqueKeyField implemented using StrField

网上查了一下, 最后找到解决方案:
http://blog.chenlb.com/2009/05/apache-solr-quick-start-and-demo.html

<!-- a search component that enables you to configure the top results for  
     a given query regardless of the normal lucene scoring.-->  
<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>  
  
<!-- a request handler utilizing the elevator component -->  
<requestHandler name="/elevate" class="solr.SearchHandler" startup="lazy">  
  <lst name="defaults">  
    <str name="echoParams">explicit</str>  
  </lst>  
  <arr name="last-components">  
    <str>elevator</str>  
  </arr>  
</requestHandler>  


把这些内容从solrconfig.xml中注释掉就可以了。

猜你喜欢

转载自alleni123.iteye.com/blog/2050039