저는 solr을 사용하고 있습니다. 텍스트 필드에 StandardTokenizerFactory를 사용하고 있지만 밑줄을 사용하고 싶지 않습니다. PatternTokenizerFactory와 같은 다른 toknizer를 사용해야하나요 아니면 StandardTokenizerFactory로 할 수 있습니까? StandardTokenizerFactory와 동일한 기능이 필요하지만 밑줄은 분리하지 않아야합니다.solr.StandardTokenizerFactory로 밑줄을 사용하여 분할하지 마십시오.
3
A
답변
2
StandardTokenizerFactory에서 할 수 있다고 생각하지 않습니다. 한 가지 해결 방법은 먼저 밑줄을 StandardTokenizerFactory가 처리하지 못하고 문서에 포함시키지 않는 것으로 바꾸는 것입니다. 예를 들어, _
을 QQ
으로 바꾸고 PatternReplaceCharFilterFactory을 입력하고 StandardTokenizerFactory를 통과 한 다음 QQ
을 _
으로 바꿔 PatternReplaceFilterFactory을 사용할 수 있습니다. StandardTokenizerFactory이 하이픈에서 분할로 단지 다음과 같은 추가
0
StandardTokenizerFactory을 위해 트릭을 할 것으로 보인다 "여기
<fieldType name="text_std_prot" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="_"
replacement="QQ"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.PatternReplaceFilterFactory"
pattern="QQ"
replacement="_"/>
...
</analyzer>
</fieldType>
을 그리고 무슨 일의 스크린 샷입니다 : 여기를 할 수있는 fieldType 정의는 - ".
<charFilter class="solr.PatternReplaceCharFilterFactory"
pattern="_"
replacement="-"/>
<tokenizer class="solr.StandardTokenizerFactory"/>