lucene 查询时输入的关键字中包含的词必须出现才被查询出来实现

说明:

输入> 安徽 合肥 包河区

输出> 只有包含“安徽”+“合肥”+“包河区”的索引才会被搜索出来

这样就会使搜索结果根据你输入的关键字的多少进行控制,输入的越多结果也越少越精确


实现方式:

通过使用IKAnalyizer分词器来将输入的字符串进行分词,将分此后的结果放到一个数组中后循环将数组中的字符串作为查询必须出现的条件,这样就能保证查询出来的结果中一定包含你输入的关键字了

示意代码如下:

//将一个字符串创建成Token流

TokenStream stream = analyzer.tokenStream("field", new StringReader(str));

//保存分词后的结果词汇

CharTermAttribute cta = stream.addAttribute(CharTermAttributte.class);

stream.reset(); //这句很重要

while(stream.increamentToken()) {

list.add(cta);

}

stream.end(); //这句很重要

stream.close();

lucene 查询时输入的关键字中包含的词必须出现才被查询出来实现

上一篇:TracePoint浅析


下一篇:cocos2d-x自定义回调实现