0
名前を検索するときに "John Doe"という検索結果が "John"、 "Doe"、または "John Doe"の検索結果と一致するように検索クエリを空白で分割するとき、クエリ全体が全体としてのみではなく、これは今私がやっている方法です:WhenepaceでLucene QueryStringを分割する最も効果的な方法
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がJohnなどの部分的な単語に一致するようにしたいので、booleanクエリを使用しました.QueryParserとWhiteSpaceAnalyzerでこれを達成できますか? – ryandlf