나는 색인/질의 중에 악센트를 제거하는 방법에 대한 다양한 스레드를 읽었습니다. 나는 다음과 같은 외모와 함께 온 현재의 fieldtype는 :Solr 악센트 제거
<fieldType name="text_general" class="solr.TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
</fieldType>
인덱스에 테스트 정보의 몇 가지를 추가 한 후 내가 토큰의 종류가 생성 된 http://localhost:8080/solr/test_core/admin/luke?fl=title
를 통해 확인했다. 예를 들어 는 "바이에른 뮌헨"와 같은 제목으로 토큰 화되었습니다의 아스키 펜던트로 문자를 대체하는 따라서 대신
<int name="bayern">1</int>
<int name="m">1</int>
<int name="nchen">1</int>
, 그것은 구분 것으로 해석하고있다?! 그런 종류의 색인 결과를 얻는다면 "뮌헨"이나 "뮌헨"을 검색 할 수 없습니다.
어떻게 수정해야합니까? 미리 감사드립니다.
답변 해 주셔서 감사합니다. 그러나 MappingCharFilterFactory는 적용되지 않는 것 같습니다. post.jar를 통해 인덱스를 업데이트하여 인덱스에 추가 할 내용이있는 json 파일을 보내야합니다. Standardtokenizer를 WhitespaceTokenizerFactory로 대체했기 때문에 문자열은 악센트에 토큰 화되지 않지만 매핑 ISOLatin1Accent.txt의 내용으로 대체되지 않습니다. – user2148322
WhitespaceTokenizerFactory를 사용하는 경우 ASCIIFoldingFilterFactory를 사용할 수 있습니다. fieldType과 마찬가지로, StandardTokenizerFactory를 WhitespaceTokenizerFactory로 바꿉니다. – JHS
나는 MappingCharFilterFactory와 ASCIIFoldingFilter가있는 손으로 title 필드와 content_type 필드에 다른 필드 유형을 적용했다. 두 변형은 여전히 작동하지 않습니다. 에 http : // localhost를 : 8080/SOLR/test_core/관리/루크 FL = 제목, 콘텐츠 _ 1 콘텐츠 _ 필드에서 및 1 (소문자 필터 사용) –
user2148322