我正在尝试使用Solr执行以下查询:
time:90000 OR (-time:[1521 TO *] AND -(time:[* TO 1519] OR time:[1521 TO *]))
它只返回一个标记为time=90000
的结果,但我有两个标记为time
的项目,其值为90000
和1520
。我希望他们两个。
有人可以给我一些解释吗?提前谢谢。
答案 0 :(得分:1)
我找到了解决方案:当我执行否定查询时,我必须写:
*:* -<query>
对于我的问题,解决方案是:
time:90000 OR (time:* -time:[1521 TO *] AND (time:* -(time:[* TO 1519] OR time:[1521 TO *])))
答案 1 :(得分:0)
我认为这是因为只允许在顶层进行否定查询。见http://wiki.apache.org/solr/SolrQuerySyntax
Pure negative queries (all clauses prohibited) are allowed.
尝试移出这些否定查询并在此处发布您的发现