我有一个启用了 faceting 的 edismax 查询。我没有指定默认字段(无论是在 select 子句中还是在 solrconfig.xml 中),因为我只想搜索在 'qf' 参数中指定的字段。(我的印象是,如果我确实指定了一个默认字段,那么该字段也会被考虑在内)。
这是查询:
/select?q=david&defType=edismax&qf=firstname^1+lastname^10&facet=true&facet.field=organization
到目前为止,一切都按预期工作:我得到了一些结果,也有一些来自分面搜索的结果,例如
- “乌兹鲁汶” (18)
- “OLV 阿尔斯特” (8)
- ...
当我现在单击其中一个组织时,我只想在属于该组织的一组文档中进行搜索,因此使用了过滤器查询。但是,当我添加这样一个“filterQuery”(fq)时,Solr 抱怨说
查询中没有指定字段名称,也没有通过“df”参数指定默认值。
那么这是否意味着我必须添加某种“包罗万象”的默认字段?但这似乎不合逻辑,因为所有搜索字段都已在“qf”中指定?
这是我的查询:
/select?q=david&defType=edismax&qf=firstname^1+lastname^10&fq=organization:UZ+Leuven
这是查询的输出:
{
responseHeader: {
status: 400,
QTime: 1,
params: {
q: "david",
qf: "firstname^1 lastname^10",
wt: "json",
fq: "organization:UZ Leuven",
defType: "edismax"
}
},
error: {
msg: "no field name specified in query and no default specified via 'df' param",
code: 400
}
}