Solr使用q和df查询有什么区别?

时间:2017-01-11 10:26:15

标签: solr

我刚做了两件事。

q -> iphone
df -> brand

q -> brand:iphone

两者都返回相同的结果。

首先在品牌领域寻找iphone字符串。第二个回归品牌领域,其价值是电话。

df字段的目的是什么?

1 个答案:

答案 0 :(得分:1)

确实没有任何区别 - 但要显示它会有所不同,当您查询与df中提供的字段不同的字段时,您将不得不考虑这种情况。

q=model:foo&df=brand

这会导致foo与字段model中的值匹配,而忽略brand。但是,如果撰写查询的人没有指定字段,则会搜索brand

大多数情况下,您希望使用edismax或dismax查询类型(defType = edismax),以便能够为要查询的字段和字段之间的权重创建更合适的规则,并处理大多数人的方式使用搜索字段:

defType=edismax&q=foo&qf=brand^10 model

..将搜索foo的字段品牌和型号,如果品牌字段中的匹配与模型字段相比,则会将分数提高十倍。只需q=foo&qf=brand即可复制您的第一个查询,因为edismax也支持部分lucene语法,q=brand:foo&qf=model也应该有效。