请您先登录,才能继续操作

[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);
 

 

Global site tag (gtag.js) - Google Analytics