2010-02-24 7 views
2

내가 루씬에서 검색 오전에/동일 운영자과 같이 구현루씬의 BooleanQuery는이 "동일"로

내용입니다-UT-08ec5de9-8813-4361을-be88-55695ddfaa00

현재 작동 중입니다.

그러나 BooleanQuery와 같이 구현 된 "in"연산자를 사용하는 경우;

final BooleanQuery booleanQuery = new BooleanQuery(); 
for (final String aValue : value) { 
    booleanQuery.add(new TermQuery(new Term(getName(), aValue)), BooleanClause.Occur.SHOULD); 
} 
는 내가 가정하고 테스트를 많이 한 내용입니다-UT-08ec5de9-8813-4361-be88-55695ddfaa00

있는 모든 고객을 찾을 수 없습니다

그 '내용입니다-UT-08ec5de9-의 길이 8813-4361-be88-55695ddfaa00 '또는 대시가 문제가 될 수 있습니다. (나는 토큰을 사용하여 db로 유지) BooleanQuery와 함께 사용할 때.

단서가 있습니까? 내용입니다-UT-08ec5de9- : -이 그것으로 작동하지 않습니다 25c20c21-bd88-4a6d-aa02-209b5fb6fb11 :이 "에서"(부울 쿼리)와 협력 - 가 :

편집 : 어떤 이상한 것은이다 8813-4361-be88-55695ddfaa00

해결 방법을 찾을 수 다음 루씬 단어는 나를 위해 소문자 :

+2

'Query' 객체에서'toString()'을 호출하면 실행될 내용이 텍스트로 표시되고 디버깅에 매우 유용 할 수 있습니다. – skaffman

+2

일반적으로 색인 생성 및 구문 분석시 동일한 분석기를 사용해야합니다 쿼리 문자열. Lowercasing 필터는 StandardAnalyzer의 일부입니다. – Yaroslav

+0

fyi - 솔루션을 찾은 경우 자신의 질문에 대한 답변으로 게시하는 것이 가장 좋습니다. – Justin

답변

0

이상한 솔루션으로 색인을했다하지만 ... 그건 그것 :

루씬 단어이었다 아래 숫자로 표기된 사례 :

관련 문제