2013-02-06 4 views
0

입력 문자열에서 구두점을 제거하는 StandardAnlyzer을 사용하여 색인을 생성하는 필드입니다. 내 입력 문자열은 @, #, -lucene에서 '@', '#'과 같은 특수 문자를 인덱싱 및 검색

예와 같은 특수 문자가 포함되어 인덱스 된 데이터는 사용자 ID와 같은 값으로 구성 될 수있다 : [email protected], ABC#DF

내가 BooleanQuery이 uesrid 통과 인덱스를 업데이트하려고 : [email protected] 문서 [email protected] .IE로 시작하는 모든 값을 삭제 쿼리 위에 사용하여 현재 indexex 삭제 writer.updateDocuments(Term,document);

사용 writer.deletedocuments(query); 하고 업데이트 인덱스를 사용하여 이전 문서를 삭제하기 사용자 ID 값이 [email protected], [email protected] 인 s도 삭제됩니다.

위의 특수 문자가 포함 된 특정 문서를 색인하고 업데이트하는 솔루션을 제안 할 수 있습니까?

고맙습니다.

감사합니다.

Chakradhar

답변

1

최선의 선택은 아마도 문서를 삭제 IndexWriter.deleteDocuments(Term)를 사용하여 다음 인덱스에 userid 필드를 KeywordAnalyzer을 사용하는 것입니다.

+0

귀하의 소중한 고마워요. NOT_ANALYZED로 사용자 ID 필드를 인덱싱하고 KetWordAnalyzer를 사용하여 용어를 검색했습니다. 그리고 효과가있었습니다. – Chakri

+0

쿨! 답변을 수락 된 것으로 표시 할 수 있습니까? – jpountz

+0

KeyWordAnalyzer를 사용하여 색인을 검색 할 때 soultion이 작동합니다. StandardAnalyzer로 사용자 ID 필드를 인덱싱하고 keyWordAnalyzer 또는 특수 문자를 인덱싱하는 다른 분석기를 사용하여 인덱스를 검색하는 방법이 있습니까 – Chakri

관련 문제