使用 Solr 3.6.1,我的 schema.xml 中有这个字段:
<field name="names" type="text_general" indexed="true" stored="false" multiValued="true"/>
<dynamicField name="names_*" type="text_general" indexed="true" stored="true"/>
schema.xml 中的文档指出“text_general”应该:
- 使用 StandardTokenizer 进行标记
- 从不区分大小写的“stopwords.txt”(当前为空)中删除停用词
- 向下大小写字符串。
- 仅在查询时,它也应用同义词(此时也为空)
我在 Solr 中使用该字段的数据索引了两个文档:
<!-- doc 1 -->
<str name="names_data">Name ABC Dev Loc</str>
<!-- doc 2 -->
<str name="names_data">Name ABC Dev Location</str>
当我执行以下查询时:
id:(doc1 OR doc2) AND names:Dev+Location)
两份文件都被退回。根据我对 Solr 的 StandardTokenizer 工作原理的理解,我预计只会返回 doc2。
为什么“Dev+Location”匹配“Dev Loc”和“Dev Location”?