apache lucene如何将分词结果的中文单个词语过滤并返回其他分词的搜索结果?
最近优化最代码的搜索,分词和搜索通过lucene实现,现在有个问题就是对于比如:“java多数据源”的搜索结果中有“多”的关键词结果,切分后词组是:“java”,“多”,“数据源”,哪位牛牛知道如何去掉这个“多”的单个词语并返回搜索结果。百度和google半天没找到结果。
自问自答吧。
可以通过QueryParser得到分词列表,提供下部分代码片段
QueryParser parser = new QueryParser(Version.LUCENE_4_10_0, fieldContent, analyzer); BooleanQuery booleanQuery = new BooleanQuery(); Query query = parser.parse(line); Set<Term> terms = new HashSet(); query.extractTerms(terms); for (Term term : terms) { System.out.println("分词:" + term); if (term.text().length() == 1) { continue; } Query termQuery = new TermQuery(term); booleanQuery.add(termQuery, Occur.SHOULD); } System.out.println("关键词:" + booleanQuery);
运行截图
解决思路就是Query.extractTerms(terms);得到分词列表,然后遍历该列表过滤掉单个词的结果,并且重新new TermQuery,并且通过Occur.SHOULD的BooleanQuery返回所有分词可能出现的结果
我知道IK分词有个 ext_stopwords ,就是不将某个字单独拆分成为一个词,也不对该词进行搜索。
IK分词配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典-->
<entry key="ext_dict">/mydict.dic;/single_word_low_freq.dic;main.dic;</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">/ext_stopword.dic;</entry>
</properties>
ext_stopword.dic 配置,一个字占用一行:
也
了
仍
从
以
使
则
却
又
及
对
就
并
很
或
把
是
的
着
给
而
被
让
在
还
比
等
当
与
于
但
- 等 最代码怎么获取牛币啊?
- 完 谁来告诉我最代码上线的时间,答对者给5牛币,先来先得
- 等 牛友们,大家好,你们做程序员多久了?现在还好吗?
- 完 在微信打开的页面里进行app下载
- 等 最代码2014年欢乐聚声会
- 完 mysql如何查询表数据并且对3个字段降序的SQL?
- 完 最代码牛币机制改革
- 完 成功的在bae上使用了自定义运行环境 jetty+nginx的组合,大家对jetty+nginx优化有哪些心得?
- 完 进来分享一下各位牛牛是如何加入最代码大家庭的?
- 等 为什么java BufferedImage类处理大图直接抛出内存溢出的异常?
- 等 最代码是否开发手机app客户端?
- 完 java程序员学习哪些java的技术?java有哪些框架?都能做哪方面的开发?
- 等 php格式网页文件怎么运行?
- 等 Java volatile值获取的问题
- 等 前端vue,拦截了登录后台后,返回的token,requests拦截token,但是发送请求的时候,就出现跨越异常
- 等 大专本科计算机科班怎么找到Java工作?
- 等 eclipse怎么把三个java swing游戏项目合成一个项目?
- 完 伙伴们,大家都有什么好的解压方式么,分享一下~
- 完 三四线城市,6、7k,运维工作,索然无味,想去辞职上培训,各位牛牛有什么建议嘛
- 等 jsp页面输入中文变成问号
- 等 JPA在线上运行一段时间后报错Caused by: java.lang.IncompatibleClassChangeError: null
- 等 PHP 这个规则用preg_match_all怎么写
- 等 大佬们,有没有知道Alfresco如何配置LDAP登录呢?
- 等 php的install目录是框架带的吗?