gpt4 book ai didi

solr - 在 Solr 中,如何将 edismax 与过滤器查询一起使用(但没有默认字段)?

转载 作者:行者123 更新时间:2023-12-05 00:51:04 27 4
gpt4 key购买 nike

我有一个启用分面的 edismax 查询。我没有指定默认字段(无论是在 select 子句中还是在 solrconfig.xml 中),因为我只想搜索“qf”参数中指定的字段。 (我的印象是,如果我确实指定了一个默认字段,那么该字段也会被考虑在内)。

这是查询:

/select?q=david&defType=edismax&qf=firstname^1+lastname^10&facet=true&facet.field=organization

到目前为止,一切都按预期进行:我得到了一些结果,还有一些来自分面搜索的结果,例如

  • “UZ 鲁汶” (18)
  • “OLV 阿尔斯特”(8)
  • ...

当我现在单击其中一个组织时,我只想在属于该组织的文档集中进行搜索,因此需要使用过滤器查询。但是,当我添加这样的“filterQuery”(fq) 时,Solr 会提示

no field name specified in query and no default specified via 'df' param.

那么这是否意味着我确实必须添加某种“包罗万象”的默认字段?但这似乎不合逻辑,因为所有搜索字段都已在“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
}
}

最佳答案

您可能需要 organization:"UZ Leuven",因为它提示缺少 Leuven 的字段名称。 fq 参数的标准查询语法是 lucene 语法。

如果您想对 fq 参数使用 edismax/dismax 查询语法,您必须告诉 Solr to use the edismax parser通过本地参数:

fq={!type=edismax qf=$fqqf}organization:UZ Leuven&fqqf=field1 field2 field3

或者可能

fq={!type=edismax qf='field1 field2 field3'}organization:UZ Leuven

关于solr - 在 Solr 中,如何将 edismax 与过滤器查询一起使用(但没有默认字段)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33830926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com