とのカスタムトークナイザー用に WordDelimiterFilterFactory を構成しましたが&
、-
これは正常に機能しています。
また、いくつかのトークナイザー ( など.
_
:
) では、境界のみで分割する必要があります。単語の間にある場合は分割しないでください。
例えば
test.com (should tokenized to test.com)
newyear. coming (should tokenized to newyear and coming)
new_car (should tokenized to new_car)
..
..
Solr.WordDelimiterFilterFactory
タイプがLOWER
、UPPER
、ALPHA
、DIGIT
、ALPHANUM
で使用できることを確認しましたSUBWORD_DELIM
。各タイプの使用に関する説明はありません。名前が示すように、タイプ SUBWORD_DELIM が私のニーズを満たすかもしれないと思いましたが、うまくいかないようです。
以下はテキストフィールドの定義です
<fieldType name="text_general_preserved" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false" />
<filter class="solr.WordDelimiterFilterFactory"
splitOnCaseChange ="0"
splitOnNumerics ="0"
stemEnglishPossessive ="0"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="0"
protected="protwords_general.txt"
types="wdfftypes_general.txt"
/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false" />
<filter class="solr.WordDelimiterFilterFactory"
splitOnCaseChange ="0"
splitOnNumerics ="0"
stemEnglishPossessive ="0"
generateWordParts="1"
generateNumberParts="1"
catenateWords="0"
catenateNumbers="0"
catenateAll="0"
preserveOriginal="0"
protected="protwords_general.txt"
types="wdfftypes_general.txt"
/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
以下はwdfftypes_general.txtの内容です
& => ALPHA
- => ALPHA
_ => SUBWORD_DELIM
: => SUBWORD_DELIM
. => SUBWORD_DELIM
Solr.WordDelimiterFilterFactory
私の要件を満たすために構成を設定する方法を教えてください。
ありがとう。