【问题标题】:Search within date range filtering in cloudant lucene search?在 cloudant lucene 搜索中搜索日期范围过滤?
【发布时间】:2015-09-30 17:07:21
【问题描述】:

在 json 文档中,我们有开始日期和结束日期。

例如:{"start-date" : "2014-12-05","end-date":"2015-03-15"}

我想检索开始日期和结束日期之间存在的记录。如何在cloudant lucene搜索中实现上述场景?

请帮帮我。

【问题讨论】:

    标签: json lucene couchdb cloudant


    【解决方案1】:

    如果您不将日期存储为整数,这应该是理想的情况,那么您应该在 cloudant 中这样做

    1) 编辑您的搜索索引以使用关键字分析器,然后您也可以传递日期

    ?q=field_name:["2015-08-17" TO "2015-08-18"]
    

    我个人使用多个分析器,其余字段为标准,cloudant 中日期字段为关键字

    【讨论】:

    • 谢谢!这非常有用
    【解决方案2】:

    这是一个我没有测试过的快速答案...

    如果将日期存储为整数:

    20141205
    20150315
    

    您应该能够对这些值执行范围查询。这是来自在线文档的 sn-p:

    您还可以使用 范围=参数。例如;

    ?q=*:*&ranges={"price":{"cheap":"[0 TO 100]","expensive":"{100 TO Infinity}"}}
    

    来源:https://cloudant.com/for-developers/search/

    更新:

    即使您保留原始日期格式 (yyyy-mm-dd),范围搜索仍应有效。

    【讨论】:

    • 这不只是返回这些范围内的文档计数,而不是实际文档:“返回适合每个指定类别的结果计数”:docs.cloudant.com/search.html#faceting
    • 另外:The range operation works only if the indexed values are numbers.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多