私は空白トークナイザイストは一つのフィルタの後に呼び出され、その後他のすべてのフィルタが適用されなければならないスキーマを使用したい:solrのフィルタ間でトークナイザを使用するには?
<filter class="solr.SynonymFilterFactory" tokenizerFactory="solr.KeywordTokenizerFactory" synonyms="german/synonyms.txt" ignoreCase="true" expand="true"/>
<!-- Case insensitive stop word removal.
add enablePositionIncrements=true in both the index and query
analyzers to leave a 'gap' for more accurate phrase queries.
-->
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="0"
splitOnCaseChange="1"
preserveOriginal="1"
/>
Solrのが唯一のフィルタ間の新しい秩序を適用されますが、トークナイザが前に呼び出されますすべてのフィルタ...
誰か手がかりを持っていますか?
敬具、フィルターがデフォルトになる前にトークナイザをRunnig
のように私はすでに別のを使用しようとした、さまざまなトークナイザを使用しようとしませんKeywordTokenizerFactoryのようなトークナイザを使用し、その後に同義語リストを適用します。 synonymfilter以外のすべてのフィルタは、割り当てられた空白トークナイザを追加します。それはうまく動作し、私の同義語は正しく動作します。 しかし、私が分析器を見ると、ホワイトスペースで分割された文字列に加えて、テキスト全体が2番目に分割されています。 例:Nullamの結果、sem vitae => Nullamの結果、sem vitae | Nullam |結果|セミ| vitae –
私はあなたのことをよく理解していれば分かりません。「KeywordTokenizerFactory」はあなたの言葉/用語を何も変更することなく処理する必要があります。おそらく 'solr.WordDelimiterFilterFactory'はあなたの単語/単語をwhitspacesに分割します。 'solr.WordDelimiterFilterFactory'マニュアル:'単語区切り文字(すべて非英数字)で区切ってください.' ...スペースは非英数字です –