2014-06-10 1 views
4

fullTextQuery로 정확하게 특수 문자로 단어를 찾을 수 있습니까? 쿼리와 함께 작동하는 luke로 검색하지만 fullTextQuery에서 결과를 반환하지 않습니다.최대 절전 모드 검색으로 특수 문자를 검색 할 수 있습니까?

new BooleanClause(qBuilder.keyword().wildcard(). 
onField("field").matching("c++").createQuery(),BooleanClause.Occur.MUST) 

특수 문자없이 "c"를 검색하는 와일드 카드를 사용하지 않습니다.

이 문제를 해결하는 방법은 무엇입니까?

+0

먼저 색인을 생성하고 특히 필드를 분석하는 방법을 처음 사용 하시겠습니까? 'C++'가있는 그대로 색인 된 경우 keyword() 쿼리를 사용하지 않는 것이 좋습니다. 후드 아래에서 이것은 Lucene TermQuery가됩니다. 또한, '+'는 Lucene의 특수 와일드 카드 문자가 아니므로이 점에있어서 어떤 문제도 발생해서는 안됩니다. – Hardy

답변

3

해당 필드에 @Analyzer(impl = WhitespaceAnalyzer.class)을 사용하면 문제를 해결할 수 있습니다.