启用 solr suggest

suggest 是搜索引擎一个方便的功能,对数据的关键字进行预测和建议,减少了用户的输入,大体的效果如下:

suggest幸运的是 solr 也提供了类似的功能,在该功能的基础上,配合 jQuery 或 kissy 的自动完成组件就可以实现类似上面的功能。
启动该功能的过程大体如下:
suggest 的功能依赖拼写组件,solr_home/data 目录下会有一个 spellchecker 目录,该目录用于存放 suggest 和 拼写检查的索引库,所以要先配置 spell 功能,配置如下:
1
2
3
4
5
6
7
8
9
< searchComponent name = "spellcheck" class = "solr.SpellCheckComponent" >
    < str name = "queryAnalyzerFieldType" >textSpell</ str >
    < lst name = "spellchecker" >
      < str name = "name" >default</ str >
      < str name = "field" >title</ str >
      < str name = "buildOnCommit" >true</ str >
      < str name = "spellcheckIndexDir" >spellchecker</ str >
    </ lst >
  </ searchComponent >
上述中的 field 用于指定主索引库中用于 spellchecker 索引的数据从主索引库的那个字段来获取。buildOnCommit 该属性为 true 时,当主索引库有提交指令时,将会自动把指定字段的内容送到 spellchecker  索引库,作为拼写检查和 suggest 使用。
接下来配置 suggest 的处理组件和请求类,如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
< searchComponent class = "solr.SpellCheckComponent" name = "suggest" >
     < lst name = "spellchecker" >
         < str name = "name" >suggest</ str >
         < str name = "classname" >org.apache.solr.spelling.suggest.Suggester</ str >
         < str name = "lookupImpl" >org.apache.solr.spelling.suggest.tst.TSTLookupFactory</ str >
         < float name = "threshold" >0.005</ float >
         < str name = "buildOnCommit" >true</ str >
     </ lst >
</ searchComponent >
< requestHandler class = "org.apache.solr.handler.component.SearchHandler" name = "/suggest" >
     < lst name = "defaults" >
         < str name = "spellcheck" >true</ str >
         < str name = "spellcheck.dictionary" >suggest</ str >
         < str name = "spellcheck.onlyMorePopular" >true</ str >
         < str name = "spellcheck.count" >5</ str >
         < str name = "spellcheck.collate" >true</ str >
     </ lst >
     < arr name = "components" >
         < str >suggest</ str >
     </ arr >
</ requestHandler >
这时候重新提交数据,会发现原先为空的 spellchecker 为空的索引库中有数据了,然后打开类似这样的网址(请将q=的值换成 title 字段中有的值)

http://localhost:8983/solr/suggest/?q=%E7%94%9F

会得到如下结果:
suggestRSS


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值