「プレフィックスクエリを使用してドキュメントを検索できるようにフィールドのインデックスを作成しようとしています」æb*
" と同様 "aeb*
「何が起こりますか:後者は見つかりますが、前者は見つかりません。å、îなどと同じ問題です。
これは私のスキーマです:
<fieldtype name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldtype>
ご覧のとおり、インデックスとクエリに同じアナライザーを使用しています。そのため、正しく理解できれば、クエリ "æb*
「に正規化する必要があります」aeb*
"。 それは "*
"シンボルが何らかの形で干渉しますか?希望する結果を得るためにスキーマを設定するにはどうすればよいですか?
Solr 1.4.1を使用しています。
回答:
回答№1は1プレフィックス検索、ワイルドカード検索、およびファジー検索では、検索語に対してテキスト分析は実行されません。
そのため、検索時にMappingCharFilterFactoryが指定されていても、検索語は分析されません。
分析はインデックス時に適用されるため、一致するだけです aeb*
(アクセントフィルターと小文字)、いずれも 大文字の一致.
独自のクエリパーサーを定義し、プレフィックスクエリの検索語を分析できます。
それ以外の場合は、アクセント付きバージョンとアクセントなしバージョンでフィールドを定義し、両方で検索を実行します。 ただし、検索語は小文字にする必要があります。