请您先登录,才能继续操作
[lucene] lucene英文时检索词等同,即改变检索词的顺序,检索结果不变的问题
greatrobert
2011-04-12
请问下,lucene的检索词等同,即改变检索词的顺序,检索结果不变这个要怎么关掉?现在需要做一个拼音搜索,比如搜索“我们”时输入“wo men”可以搜到,输入“men wo”也能搜到
|
|
greatrobert
2011-04-13
问题解决了,使用org.apache.lucene.search.PrefixQuery、org.apache.lucene.search.spans.SpanMultiTermQueryWrapper、org.apache.lucene.search.spans.SpanNearQuery组合可以实现,把SpanNearQuery的inOrder参数设置为true就可以了 SpanMultiTermQueryWrapper<MultiTermQuery> sq1 = new SpanMultiTermQueryWrapper<MultiTermQuery>( new PrefixQuery(new Term("nameSpell", "w"))); SpanMultiTermQueryWrapper<MultiTermQuery> sq2 = new SpanMultiTermQueryWrapper<MultiTermQuery>( new PrefixQuery(new Term("nameSpell", "m"))); SpanMultiTermQueryWrapper<MultiTermQuery> sq3 = new SpanMultiTermQueryWrapper<MultiTermQuery>( new PrefixQuery(new Term("nameSpell", "f"))); SpanMultiTermQueryWrapper<MultiTermQuery> sq4 = new SpanMultiTermQueryWrapper<MultiTermQuery>( new PrefixQuery(new Term("nameSpell", "b"))); SpanNearQuery sq = new SpanNearQuery(new SpanQuery[] { sq1, sq2, sq3, sq4 }, 0, true);
|