我有一个字段:
<field name="name" type="nameType" indexed="true" multiValued="false" stored="true"/>
并输入:
<fieldType name="nameType" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
有两个文件:
Doc1:{"name":"one"}
Doc2:{"name":"one two"}
现在,如果我查询"name:one two"
第一个结果是Doc1 ,这显然是错误的。我调试了我的查询并注意到它们具有相同的coord value = (1/2)
。这是为什么? Doc2应为1。
据我所知,coord值是查询项(令牌)的数量,它与索引字段匹配,除以所有查询令牌。为了确保我在太阳能仪表板的分析部分检查了我的类型,并且“一二”在索引和查询时分为两个标记“一”,“两个”。
答案 0 :(得分:1)
在这两种情况下,只有“一个”标记会匹配,所以你提到的coord =(1/2)是正确的。
查询的“一个”标记与文档的名称字段匹配,而“两个”标记与您在solr模式中指定的默认字段匹配(任何一个都不存在)文件,因而不匹配)。