下面是显示查询参数的查询响应片段:
"q":"title:bear",
"indent":"true",
"fl":"id",
"q.op":"OR",
"fq":"authors:bear",
"sort":"id asc",
"rows":"100"}},
"response":{"numFound":2,"start":0,"numFoundExact":true,"docs":[
{
"id":"204921"},
{
"id":"228142"}]
}}
这两条记录中的bear
同时出现在标题和作者列表中,如果只在标题中查询bear或在作者列表中查询bear,则会得到"numFound":688
和"numFound":35
,我希望这两个集合的OR是这两个集合的并集。(至少有688个项目)而不是交集(2个项目)。如果我将操作从OR切换到AND,我会得到同样的两个项目。这不是Solr API中构造OR查询的正确方式吗?
1条答案
按热度按时间ojsjcaue1#
此查询将筛选结果,使其仅包含带有单词“bear”的作者(筛选查询),然后在该结果集中搜索标题bear。如果要使用AND/OR功能,则应将两个参数(title和author)作为筛选查询传递。还可以使用explain参数给予更多上下文。https://solr.apache.org/guide/7_4/common-query-parameters.html#debug-parameter