【问题标题】:Solr query with grouping not working带有分组的 Solr 查询不起作用
【发布时间】:2012-10-17 13:34:04
【问题描述】:

以下查询工作正常:

q=field_one:value_one AND -field_two:[* TO *] AND -field_three:[* TO *]

但是,只要我把括号放在那里,我就没有结果

q=field_one:value_one AND (-field_two:[* TO *] AND -field_three:[* TO *])

这两个查询不是等效的吗?

谢谢大家

戴夫

注意:我这样做是因为我需要将更多的“与”与“或”结合起来;而不仅仅是因为我喜欢括号。

【问题讨论】:

标签: solr lucene


【解决方案1】:

稍微交换一下布尔值我有一些有用的东西。

q=field_one:value_one AND -(field_two:[* TO *] OR field_three:[* TO *])

给出与不带括号的原始查询相同的结果。

不知道为什么 Solr 对其他语法如此挑剔。对我来说似乎有点奇怪。

【讨论】:

  • 第二种情况下的语法不起作用的原因是您正在创建一个不匹配的子查询。 (-field_two:[* TO ] AND -field_three:[ TO *])。你告诉它要丢弃什么,但不要给它任何东西来包含在那里,所以它什么也得不到。在答案中的语法中,您提供了一个子查询,该子查询与 field_two 或 field_three 中的值相匹配,然后从从 field_one:value_one 获得的结果中消除它们
  • 嗨@femtoRgon,感谢您的回复。我确实看起来像那样,但这是我发现的唯一用于搜索缺失字段的语法。 -field[* TO *] 将返回所有没有名为“field”的字段的文档。
猜你喜欢
  • 1970-01-01
  • 2011-11-23
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 2018-05-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多