jdgue 发表于 2015-11-12 10:00:32

Solr学习总结-问题处理

  检查索引:java -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex/usr/share/solr/data/index
  修复索引:java –cp /solr/lucene/lucene-core-3.1-SNAPSHOT.jar -ea:org.apache.lucene... org.apache.lucene.index.CheckIndex /usr/share/solr/data/index -fix
  合并索引:curl 'http://localhost:8983/solr/update' --data-binary '<optimize/>' -H 'Content-type:text/xml; charset=utf-8'
  避免打开过多的索引文件:<mergeFactor>2</mergeFactor><useCompoundFile>true</useCompoundFile>
  内存不够用:java –Xmx1024M –Xms512m –jar start.jar。分别指定jvm可以获得的最大和最小的堆数量。
  非英语的字典排序可以采用过滤:<filter class=&quot;solr.CollationKeyFilterFactory&quot; language=&quot;pl&quot; country=&quot;PL&quot; strength=&quot;primary&quot; />
  分片查询的无穷递归问题:主要是在requestHandler中重复定义对本地的查询,可以新建分片查询,分片调用本地。
  jvm垃圾收集过慢问题:java –Xms256M –Xmx2048 -XX:&#43;UseConcMarkSweepGC -XX:&#43;UseParNewGC-XX:ParallelGCThreads=4 -XX:SurvivorRatio=2 –jar start.jar
  监视垃圾回收:java –Xms256M –Xmx2048 –Xloggc:gc.log –jar start.jar
  更新一个field而不是重建全部索引:定义外部field<fieldType name=&quot;floatOld&quot; class=&quot;solr.FloatField&quot; omitNorms=&quot;true&quot;/>
<fieldType name=&quot;visitsFieldType&quot; keyField=&quot;id&quot; defVal=&quot;0&quot;
stored=&quot;false&quot; indexed=&quot;false&quot; class=&quot;solr.ExternalFileField&quot;
valType=&quot;floatOld&quot; />
<field name=&quot;visits&quot; type=&quot;visitsFieldType&quot; />新建external_visits文件,内容为:1=200
2=20
3=50其中visits标识新的域名。=左边是keyField,右边是值。
  
  
  
  外部的field只能用在函数查询中,不能用来查找、排序和显示;只有重新提交后或者重启,更改的external_visits文件才可以起作用。
  http://localhost:8080/solr/select?q=_query_:&quot;{!dismax qf=title v='content'}&quot;&bf=log(visits)&fl=*,score&bf=product(visits)
  索引优化:对于不显示的field不需要保存和termVectors等,对于不需要检索的field不建立索引。

版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Solr学习总结-问题处理