大家知道,搜索引擎重要作用之一就是全文检索了,下面看下怎么使用solr搜索:
这里使用的是mmseg4j分词器
正常搜索关键词“提高宝贝排名”。
debugQuery发现被切分为“提高 宝贝 排名”执行,
这时搜索条数为9条。
更改搜索条件,进行搜索,此时搜索条数为1469,远远大于之前的搜索条件。
分词完毕,将分词结果以下查询语法传入到Solr(例如分词前是‘提高宝贝排名“,分词后为”提高“、”宝贝“、”排名“,查询逻辑:AND|OR可以省略,省略则按照solr的默认配置执行):
debugQuery可以看到,main:(提高 AND 宝贝 AND 排名) 等价于 main:提高 AND main:宝贝 AND main:排名。
综上,看起来分词要在提交solr之前就要准备好了。
这种处理方式确实有些麻烦:
1、需要在自己的应用程序和solr服务器分别提供分词功能;
2、需要在两边都加上自定义词库。
另外一种简单的处理是:
使用solr的FieldAnalysisRequestHandler 可以对某个字段或字段类型的分词器对查询串取到分词数据。