jcseg能否实现在分出的词后自动加空格的功能?
solr中文本身是不支持模糊查询(半匹配的),但是可以通过如下两种方式实现:
引用http://blog.chenlb.com/2010/08/get-solr-analysis-word.html
“这个问题的根本原因是 lucene / solr 使用的查询解析器生成的 Query 是短语查询。短语查询默认又是连续的词中没有其它字符。所以会找不到。
目前我知的方式大概有二种:
1、查询前分词一遍,把分出的词用空格分开,再去搜索(叫它为查询预处理)。查询前分词可以上面的接口。
2、扩展 solr query parser,返回 boolean query。”
即搜索前,先处理一下query analyzer的分词(加空格),然后再搜索。
http://blog.chenlb.com/2010/08/solr-use-custom-query-parser.html
网上一位大牛曾给出在solr1.4和3.5中的解决方案,但是4.9中调整了相关api。
本人小白一枚,不知道jcseg本身能否实现query时分词后自动加空格(可以再开一种模式)的功能。
希望您能在百忙之中抽出时间看一下,
谢谢!
@狮子的魂 @狮子的魂
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
引用来自“狮子的魂”的评论
Jcseg本身只提供分词的功能, 把一个字符串切分成一个一个的词条给你, 你想怎么处理都行.
如果是solr有这个需求, 更改solr的Tokenizer即可:
org.lionsoul.jcseg.solr.JcsegTokenizer
在 termAtt . append ( word . getValue ());处加上你要的空格.
谢谢,麻烦您了
Jcseg本身只提供分词的功能, 把一个字符串切分成一个一个的词条给你, 你想怎么处理都行.
如果是solr有这个需求, 更改solr的Tokenizer即可:
org.lionsoul.jcseg.solr.JcsegTokenizer
在 termAtt . append ( word . getValue ());处加上你要的空格.