Solr使用小结
最近在使用solr搭建公司网站的搜索,到目前为止,刚好3周时间,Solr搭建的引擎也上线了,即将正式提供服务。总结一下这过程中遇到的一些问题,及最终解决的方法。
几乎是从0开始学习solr与lucene,经过了三个星期的努力,基本上把solr能提供的功能都了解。针对项目的业务需求,都从solr找到了现成的方案来实现。其中有过很多的纠结,不过好在这些困难都克服了。目前的项目主要用到了solr的下面几个功能:
facet:对查询的若干字段时间统计,使用过程中发现这个功能对于多值的域也非常有用,折腾了很长时间,才在昨天做了一下实验,搞定了这个问题。 另外在这过程中也发现了Solr本身提供的DataImportHandler非常不靠谱,在导入多值的field时会存在问题。facet在对 multiValued的field做统计时,会把搜索结果中facet.field的包含的所有的值一起做统计,这个功能在某些场合非常有用。
fq:运用了大量的fq,用来对结果做进一步的查询。在使用过程中详细了看了lucene的查询语法,基本上把这个东西用熟悉了。
hl:毫无疑问,这个功能是搜索必须的。
boost:通过在查询串的q中添加_val_:可以影响结果的打分,这是影响boost score的一个很好的方式。solr 3.1之后提供的edismax也能实现这样的功能,而且更强大。在使用过程中,对于这个值的取值非常纠结,取值太大了会完全影响文本相关性。
目前对solr的使用仅仅停留在使用其提供的功能满足业务需求的阶段,对于更深层次的东西并未深究。对于分词器,requestHandler等都没有进行定制,这些等数据量上来或者有新的需求后,再来做进一步的研究吧。
L
![](http://img.zemanta.com/pixy.gif?x-id=91cdd57e-e967-88d4-8d12-346b4a412dff)