0
当通过空格拆分搜索查询时,例如在搜索名称时,术语“John Doe”将匹配结果“John”,“Doe”或“John Doe”而不仅仅是整个查询。这就是我现在这样做的:通过空格拆分Lucene查询字符串的最有效方法
BooleanQuery booleanQuery = new BooleanQuery();
String[] terms = queryString.split(" ");
for(String term : terms) {
booleanQuery.add(new FuzzyQuery(new Term("firstName", term)), BooleanClause.Occur.SHOULD);
booleanQuery.add(new FuzzyQuery(new Term("lastName", term)), BooleanClause.Occur.SHOULD);
}
对我来说这种方法接缝有点杂乱。有更好的方法吗?
为什么不使用QueryParser? – milan
是的,使用QueryParser和WhiteSpaceAnalyzer(如果你只想分割空白) – naresh
我用一个模糊的布尔查询,因为我想能够匹配部分单词,如Jon会拉起约翰等。QueryParser和WhiteSpaceAnalyzer可以实现这个吗? – ryandlf