首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

solr进阶: 怎么定制搜索服务,扩展搜索逻辑

2013-01-17 
solr进阶: 如何定制搜索服务,扩展搜索逻辑前两天发了篇剖析solr实用性,主要黑了solr建索引让我觉得不舒

solr进阶: 如何定制搜索服务,扩展搜索逻辑

前两天发了篇"剖析solr实用性",主要黑了solr建索引让我觉得不舒服,还黑了solr只是个通用的丢入了servlet容器里的简单服务,事实证明我错了。这篇博客我要纠正并回答那篇博客里自己总结的问题:如何定制solr实现自己的搜索服务。

solr是一个可扩展的服务,我们可以添加自己的包和类,在solr已经实现的default处理逻辑之上,再添加我们自己的搜索逻辑。实现手段就是继承solr的基础类,重写或者改写新的Filter,Search Component以及Request Handler类,来取代solr默认的处理类或者与之并存。我也是读了源码,参考了默认类的实现过程,才找到了定制的方法,下面一一说明。


Request Handler

solrconfig.xml里,对/select设置的默认处理类是solr.SearchHandler

<fieldtype name="exampleType" stored="true" indexed="true" class="solr.TextField" > <analyzer>  <tokenizer class="solr.WhitespaceTokenizerFactory" />  <filter class="pl.solr.ExampleFilterFactory" /> </analyzer></fieldtype>


总结前几天我也不知道solr的这几个玩法,把solr给小看了。其实solr是一个高可扩展的东西,你要实现自己的搜索服务,就继承solr的基本类,增加自己的扩展类到solr的配置文件里,可以取代solr的默认处理类,也可以和solr的类共同处理。所以以上说的request handler,search component以及filter给我们实现了很好的扩展方式,用起来比较像SOA的架构,像OSGi里的各部分组件。

之后如果对solr有更深的理解或者解读,会再做分享。


(全文完)

热点排行