Solr中搜索时间范围或空/无字段[重复](Searching for date range or

2019-07-03 22:10发布

这个问题已经在这里有一个答案:

  • 使用OR而不是在Solr的查询 6个回答

我想执行在Solr的文本字段的搜索。 我想返回所有匹配的范围内,或有没有价值。 这两个搜索词独立:

myfield:[start TO finish]
-myfield:[* TO *]

第一个返回范围内的所有比赛。 第二返回具有的“MyField的”字段没有值的所有比赛。 问题是把两者结合起来。

这将返回没有匹配:

myfield:[start TO finish] OR -myfield:[* TO *]

这将返回开始和结束,而不是空条目之间的匹配:

myfield:[start TO finish] OR (-myfield:[* TO *])

Answer 1:

从毛里西奥·雅伯的解决方案为我,直到我已经包括了它充分的查询。 查询本身最多可包含三个字段与范围,并在中间某个地方Solr的无法处理它。 我设法用一个查询来解决这个问题:

(myfield:[start TO finish] OR (*:* NOT myfield:[* TO *]))

它woked即使在我复杂的查询,所以也许这将帮助别人。



Answer 2:

我同意毛里西奥·雅伯的解决方案。

如果这能帮助我改变了我的初始查询:

DocSource:"P" OR ( DocSource:"E" AND (MyDate:[NOW TO *] OR -MyDate:[* TO *] ) )

DocSource:"P" OR ( DocSource:"E" AND -( -MyDate:[* TO NOW] AND MyDate:[* TO *] ) )

如预期中的Solr 4.1的第一个查询没有运行。



文章来源: Searching for date range or null/no field in Solr [duplicate]
标签: solr