2012-09-10 4 views
1

LucA 검색 엔진 (v36)을 StandardAnalyzer와 함께 사용하고 있습니다. MultiFieldQueryParser를 사용합니다.Lucene이 상위 문자가있는 문자열과 일치하지 않습니다.

내 필드 중 하나는 NOT_ANALYZED (영숫자 문자와 점을 포함하는 버전 이름이기 때문에)로 설정됩니다. 이 필드에 위쪽 문자가 있으면 검색 결과가 없습니다. 어떤 아이디어?

세부 사항 :

  • 버전 1
  • 1.2
  • version1.26.12.test.b
  • version1.26.12.test.a :

    필드는 같은 값이 포함되어 있습니다. 더미

내 검색은 위의 세 가지 첫 번째 예는 있지만 마지막 세 번째 예는 아닙니다.

나는 Collections.emptySet()으로 표준 불용어를 건너 뛰는 것을 제외하고는 Lucene을 전혀 사용자 정의하지 않았습니다.

고마워요. Dimitri

답변

3

필드를 NOT_ANALYZED로 표시하면 그 필드는 그대로 저장되지만, StandardAnalyzer은 LowerCaseFilter (및 기타 링크 참조)를 사용합니다. 따라서 "version1.Dummy"를 검색하면 검색어 문자열은 저장된 문자열과 일치하지 않는 "version1.dummy"가됩니다.

+0

안녕하세요. 답변 해 주셔서 감사합니다. 그것은 의미가 있지만, 불행히도 그것은 문제를 해결하지 못합니다. version1.dummy를 검색해도 데이터는 검색되지 않지만 version1.ifummy는 검색합니다. 어떻게해야합니까? – daiquiri33

+1

필드가 NOT_ANALYZED 인 경우 검색어 문자열이 'QueryAnalyzer'를 던지지 않았는지 확인해야합니다. – dolbi

관련 문제