我刚做了两件事。
q -> iphone
df -> brand
和
q -> brand:iphone
两者都返回相同的结果。
首先在品牌领域寻找iphone字符串。第二个回归品牌领域,其价值是电话。
df
字段的目的是什么?
答案 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
也应该有效。