您的位置:首页 > 其它

Solr Suggest智能提示配置说明

2015-03-11 20:28 232 查看
有时候,为了实现如下功能



以满足用户在输入个别单词的时候,能够自动联想提示,这样可以避免用户的冗余输入并提供一定的推荐,从而实现更好的交互效果和内容推广效果。这样的功能有很多实现方式,成熟的Solr其实就已经封装了这样的功能,而且只需要简单的配置就可以完成。(注,本人使用的是Solr-4.10.0版本)

1. 配置suggest功能点

打开solr-config.xml,查找到spellcheck节点



如上提供配置spellchecker配置,可以用于修改最大只能提示词汇量

定位solr.SuggestComponent,主要如下说明,修改sourceLocation参数,根据这个参数的配置,我们可以知道,solr拉取只能提示的文件在以当前路径下的suggest文件夹中的dict.txt文件中。



配置完后,根据mySuggester的说明,可以知道请求路径是/suggest

2. 添加只能联想词汇表

如上述说明,需要在solr-config.xml同级目录创建suggest文件夹,并在其下面创建dict.txt文件,如下所示



其中,dict.txt文件格式如下

#可以使用#做注释

#格式:词[\t权重值]

aquire

aquire2

aquire3

#中文

让我们荡起双桨

贝瓦儿歌

#香格里拉

香格里拉 1.2

香格里拉县 1.5

香格里拉酒店 3

3. 测试

请求地址http://localhost:8080/project-name/core-name/suggest?q=香

返回结果如下



返回由“香”开头的所有词汇,包括其权重和payload两个值,可以发现,由于weight是long类型,所以分数对排序并没有起作用。

Solr Suggest组件是支持实时新增词汇的,实现这个机制,只需要在请求中加一个参数,如下测试

我们先新增词汇如下:

#新增词汇

美女

美人

美人胚子

请求地址http://localhost:8080/project-name/core-name/suggest?q=香

没有任何结果,这是为什么?文件变更,没有钩子触发,只能显示触发文件的重新加载。

只需要修改请求地址

http://localhost:8080/project-name/core-name/suggest?suggest.build=true&q=香

返回结果如下:



这个demo我没有对suggest请求和返回做封装,对于不同的展示需求,和分词需求,可以对suggest组件再做一层封装。具体可以参考 /article/7463717.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: