我在 schema.xml 中有一个这样定义的字段:
<field name="ImageThumbnail" type="string" indexed="false" stored="true" required="false" />
我在文档中存储了图像缩略图的 Base64 字符串表示,因此我们的搜索结果屏幕可以呈现这些缩略图。这很好用;我们在浏览器客户端中显示人和物体的图像。
问题是 base64 字符串的文本是可搜索的,即使在 schema.xml 中设置了 indexed="false"。
我通过输入汽车制造短手(大众汽车的大众)找到了这个,我得到了两次点击。它不返回任何命中突出显示信息,而是返回一些匹配的记录。
我进一步搜索“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(处理车辆时)将是一个常见的搜索词,我需要排除图像字符串进行匹配。