代码之家  ›  专栏  ›  技术社区  ›  CraftyFella

在solr查询语法中删除过期记录

  •  1
  • CraftyFella  · 技术社区  · 15 年前

    我认为Solr1.4有一个solr查询语法问题。我正在尝试从solr查询中排除过期的记录。但是,如果记录没有过期记录,我也希望将该记录带回来。例如。

    要仅获取尚未过期的记录列表,我将使用此查询:

    expirydate:[NOW/DAY TO *]
    

    然后我想得到一份记录清单 不要 有有效期我可以用

    -expirydate:[* TO *]
    

    这两个查询都是独立工作的。即,第一个查询返回3条记录。第二个查询返回921条记录。但是,当我将这两个查询与 我得到0条记录:

    expirydate:[NOW/DAY TO *] OR -expirydate:[* TO *]
    

    知道我做错了什么吗?

    谢谢

    戴夫

    2 回复  |  直到 13 年前
        1
  •  2
  •   bajafresh4life    15 年前

    这里不是100%确定,但我认为你不能用这种方式结合或与否定运算符结合。

    尝试在每个文档中添加具有相同值的虚拟字段,然后尝试

    enddate:[NOW/DAY TO *] OR (dummy:yes -enddate:[* TO *])
    
        2
  •  1
  •   Squeee123    13 年前

    我只需要解决这个问题,我开始执行批准的答案,但后来意识到我可以这样做:

    -过期日期:[*至今]

    不管文档是否设置了过期日期,这都有效。