solr - 如何检查两个 Solr 字段的相等性?

标签 solr indexing

我面临的情况是我需要从 Solr 服务器获取所有这些记录,条件是 field_1.value != field_2.value .

这里field_1field_2是我的架构的 Solr 字段名称。

我试过 !(creation_date = last_edited_date)但它不起作用。这将返回 Solr 服务器在执行查询时包含的所有 Solr 文档。

任何人都可以分享如何从 Solr 那里获取这些记录 !(creation_date = last_edited_date) ?

最佳答案

AFAIK 日期比较不像其他字段那样直接。

有两种选择

  • 有另一个计算域( bool 值)creation_date_equals_last_edited并将其设置为 true 以在索引时匹配它的文档。将此字段用作过滤条件。
  • 使用 frange , inclsub在查询时间计算这个。一个例子 -

    fq={!frange l=0 incl=false}sub(creation_date,last_edited_date)

  • 如果您希望在日期差异中容忍(由于边际时间戳差异),您可以使用 scale功能查询。

    引用:Solr Function QUery

    关于solr - 如何检查两个 Solr 字段的相等性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15927893/

    相关文章:

    java - 为什么 Solr 在无模式模式下为 String 创建多值字段?

    data-structures - 表示分段连续范围的数据结构?

    indexing - URL 从 nolayout.aspx 重定向到 sitecore 网站中的 404 错误页面的额外信息

    python - 具有不相等元素的 pandas datetime-indexed DataFrame 之间的操作

    solr - solr会进行网络爬网吗?

    ruby-on-rails - 太阳黑子、Solr、order_by、编码

    java - solr 1.4.0 和 4.6.0 之间的性能问题

    java - Solr分页性能

    mysql - MySQL 上的索引

    mongodb-$all 查询的列表字段上的索引