Solr查询语法问题

时间:2012-11-06 11:08:55

标签: solr

我正在尝试使用Solr执行以下查询:

time:90000 OR (-time:[1521 TO *] AND -(time:[* TO 1519] OR time:[1521 TO *]))

它只返回一个标记为time=90000的结果,但我有两个标记为time的项目,其值为900001520。我希望他们两个。

有人可以给我一些解释吗?提前谢谢。

2 个答案:

答案 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.

尝试移出这些否定查询并在此处发布您的发现