schema.xml 内で次のように定義されたフィールドがあります。
<field name="ImageThumbnail" type="string" indexed="false" stored="true" required="false" />
ドキュメント内の画像サムネイルの Base64 文字列表現を保存しているので、検索結果画面でこれらのサムネイルを表示できます。これはうまくいきます。ブラウザクライアントに人や物の画像を表示します。
問題は、indexed="false" が schema.xml に設定されているにもかかわらず、base64 文字列のテキストが検索可能であることです。
これは、Automotive Vehicle Make の短縮形 (Volkswagon の場合は VW) を入力して見つけたもので、2 件ヒットしました。ヒットの強調表示情報は返されませんが、いくつかの一致するレコードが返されます。
さらに「4AAQSkZJRgABAQEAYABgAAD」を検索したところ、150 件以上ヒットしましたが、すべて ImageThumbnail 列内の文字列に一致していました。
私は何が欠けていますか?Indexed="false" の場合、Solr はどのようにしてそのフィールドで一致を検索して見つけることができますか? Indexed="false" でない場合、他に何がフィールドの検索を停止しますか?
クエリ用に /select を実行しています。参考までに、ここに私の /select requestHandler を示します。
<requestHandler name="/select" class="solr.SearchHandler">
<lst name="defaults">
<str name="echoParams">explicit</str>
<int name="rows">250</int>
<str name="wt">json</str>
<str name="hl">true</str>
<str name="hl.fl">*</str>
<str name="indent">true</str>
<str name="df">text</str>
</lst>
考えや提案をありがとう。VW (車両を扱う場合) は一般的な検索用語になるため、一致させるために画像文字列を除外する必要があります。