2010-03-29 2 views
0

Lucene에서 표준 분석기를 사용하여 필드에 공백과 특수 문자 (밑줄,!, @, #,. ...) 검색 가능.Lucene에서 표준 분석기를 사용하여 공백 및 특수 문자를 검색 할 수있는 필드를 만들고 싶습니다

'SKU 번호', 아직 :

나는

나는 루크 내 인덱스를 볼 때, 필드는 내가 예상 한대로, 같은 값이 NOT_ANALYZED_NO_NORMS 및 Field.Store.YES에 IndexField 설정 'SKU'또는 'SKU *'를 검색 할 때 아무 것도 나타나지 않습니다.

무엇이 누락 되었습니까?

답변

1

NOT_ANALYZED (으)로 색인을 생성했기 때문에 'SKU'를 (를) 검색하면 작동하지 않습니다. 'SKU 번호'는 색인 된 전체 용어입니다. 공백으로 단어를 나누려면 ANALYZED가 사용됩니다.

이제 'SKU *'라는 접두사 검색을 사용하면 기본적으로 lucene QueryParser가 확장 된 용어를 소문자로 제외하고 작동합니다. 파서의 lowercaseExpandedTerms을 False로 설정하십시오.

0

Field.Store.YES는이 필드의 검색 동작에 영향을주지 않습니다. 그리고 IndexField를 NOT_ANALYZED로 설정했습니다.

Luke에서 KeywordAnalyzer 분석기를 사용하여 전체 필드 텍스트 'SKU Number'에서 검색을 수행하십시오.

관련 문제