【问题标题】:if condition in Solr QuerySolr 查询中的 if 条件
【发布时间】:2017-10-09 14:05:56
【问题描述】:

你们中的任何人都可以为以下问题提出一些解决方案吗?

solr.if 查询的正确格式是什么? 我想检查一个特定的字段值是否大于一个常数 例如: 如果((字段 1 > 0),字段 1,字段 2) 这在 solr 中可能吗? 我们也可以对日期字段做同样的事情。通过比较两个日期?

【问题讨论】:

    标签: solr solr-query-syntax


    【解决方案1】:

    Solr(和一般的 Lucene)是基于文档的。 这意味着信息单元是单个文档(由一组字段组成)。 您搜索并返回文件。 要搜索字段值小于常量的文档,您可以使用范围查询[1]:

    field1:[* TO 500] 这相当于“将 field1 的值小于 500 的所有文档返回给我。 日期也可以这样做。

    鉴于此,我没有得到您请求的“条件”部分,但 Solr 提供了一个可能有用的条件函数查询[2]

    [1]https://lucene.apache.org/solr/guide/6_6/the-standard-query-parser.html#TheStandardQueryParser-RangeSearches

    [2]https://lucene.apache.org/solr/guide/6_6/function-queries.html#FunctionQueries-AvailableFunctions

    【讨论】:

    • 感谢您的回答。我需要比较两个日期。我想我们将无法使用这些类型的范围查询来做到这一点。
    • 作为用户,您需要什么信息?将所有文件归还给我(哪种日期比较?)
    猜你喜欢
    • 1970-01-01
    • 2015-05-10
    • 2023-03-30
    • 2016-11-06
    • 2016-02-07
    • 1970-01-01
    • 2014-11-24
    • 2020-10-24
    • 2013-10-11
    相关资源
    最近更新 更多