如何检查两个Solr Fields的相等性?

时间:2013-04-10 13:55:52

标签: solr indexing

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

此处field_1field_2是我的架构的Solr字段名称。

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

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

1 个答案:

答案 0 :(得分:2)

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

有两种选择可以想到

  • 拥有另一个计算字段(布尔值)creation_date_equals_last_edited,并在索引时为匹配它的文档设置为true。使用此字段作为过滤条件。

  • 使用frangeinclsub在查询时计算此值。一个例子 -

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

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

参考:Solr Function QUery