【问题标题】:Searching for dates within the date range in a multiValued field在多值字段中搜索日期范围内的日期
【发布时间】:2018-02-16 22:22:39
【问题描述】:

我在搜索日期在我在查询中指定的范围内的文档时遇到问题。

架构配置如下

<field name="dates" type="rdates" stored="true" />
<fieldType name="rdates" class="solr.DateRangeField" multiValued="true" />

这些是我在 Solr 中索引的文档

查询:q=dates:*

{
"responseHeader":{
    "params":{
    "q":"dates:*",
    "_":"1518809837624"}},
"response":{"numFound":2,"start":0,"docs":[
    {
        "id":1,
        "dates":["[2015-12-31 TO 2016-01-01]"],
        "_version_":1592586045307748352},
    {
        "id":2,
        "dates":["[2015 TO 2017]",
        "[2013 TO 2015]"],
        "_version_":1592595675256717312}]
}}

这些是匹配用户查询的文档:

查询:fq={!field f=dates op=Within}[2012 TO 2016]&amp;q=dates:*

{
"responseHeader":{
    "params":{
    "q":"*:*",
    "fq":"{!field f=dates op=Within}[2012 TO 2016]",
    "_":"1518808413748"}},
"response":{"numFound":1,"start":0,"docs":[
    {
        "id":1,
        "dates":["[2015-12-31 TO 2016-01-01]"],
        "_version_":1592586045307748352}]
}}

据我了解,ID 为 2 的文档应该匹配,因为日期字段中的值之一与我的查询匹配。

确实,将文档 ID=2 更改为只有日期字段中的值 [2013 TO 2015],它与我的查询匹配。

查询:fq={!field f=dates op=Within}[2012 TO 2016]&amp;q=dates:*

{
"responseHeader":{
    "params":{
    "q":"dates:*",
    "fq":"{!field f=dates op=Within}[2012 TO 2016]",
    "_":"1518808413748"}},
"response":{"numFound":2,"start":0,"docs":[
    {
        "id":1,
        "dates":["[2015-12-31 TO 2016-01-01]"],
        "_version_":1592586045307748352},
    {
        "id":2,
        "dates":["[2013 TO 2015]"],
        "_version_":1592597631061721088}]
}}

我应该如何查询落在查询指定范围内的文档?

【问题讨论】:

    标签: solr


    【解决方案1】:

    相同的代码和配置,不同的日子,它成功了

    我认为我的电脑不喜欢周五下午工作。

    【讨论】:

      猜你喜欢
      • 2017-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 2014-01-07
      相关资源
      最近更新 更多