gpt4 book ai didi

elasticsearch - 在ElasticSearch中搜索多个日期字段

转载 作者:行者123 更新时间:2023-12-03 00:50:48 25 4
gpt4 key购买 nike

我有一个像这样的文件:

{
"listings": {
"mappings": {
"listing": {
"properties": {
"auctionOn": {
"type": "date"
},
"inspections": {
"type": "nested",
"properties": {
"endsOn": {
"type": "date"
},
"startsOn": {
"type": "date"
}
}
},
// more fields.. snipped for brevity
}
}
}
}
}

并且我想执行以下搜索:(需要是 bool(boolean) 过滤器。.没有得分要求)
  • 返回文档中的任何inspections.startsOn匹配提供的任何日期(如果提供)
  • 返回文件,其中auctionOn匹配提供的日期(如果提供)
    他们还可以指定搜索a)仅检查,b)仅拍卖。如果未提供,则两个日期都必须匹配。

  • 因此,换句话说,可能的搜索是:
  • 在有检查/拍卖的地方搜索
  • 搜索需要检查的地方
  • 搜索有拍卖品的地方
  • 搜索在提供的日期上是否有任何检查/拍卖的地方
  • 搜索提供的日期中是否有检查的地方
  • 搜索提供的日期有哪些拍卖会

  • 现在,我已经在 bool(boolean) 查询过滤器中:
    {
    "query":
    {
    "bool":
    {
    "filter":[{"terms":{"location.suburb":["Camden"]}}
    }
    }
    }

    我需要这个新的过滤器分开。所以..这就像一个主 bool(boolean) 过滤器中的嵌套或过滤器?

    因此,如果提供“郊区=卡姆登,日期= ['2018-11-01','2018-11-02']'

    那么它应该返回郊区= Camden的文件,并且检查或拍卖日期都包括所提供的日期之一。

    我有点不知道该怎么做,所以任何帮助将不胜感激!

    最佳答案

    对于您在问题中提到的案例,将有很多 bool(boolean) 查询组合。以你提到的例子为例

    So if provided "Suburb = Camden, Dates = ['2018-11-01','2018-11-02']'

    then it should return documents where the suburb = Camden and either the inspections or auction date includes one of the dates provided.



    假设您的位置过滤器按预期工作,例如上述日期中的部分日期。该查询的附加内容将是:
    {
    "query": {
    "bool": {
    "filter": [
    {
    "terms": {
    "location.suburb": [
    "Camden"
    ]
    }
    },
    {
    "bool": {
    "should": [
    {
    "terms": {
    "auctionOn": [
    "2018-11-01",
    "2018-11-02"
    ]
    }
    },
    {
    "nested": {
    "path": "inspections",
    "query": {
    "bool": {
    "should": [
    {
    "terms": {
    "inspections.startsOn": [
    "2018-11-01",
    "2018-11-02"
    ]
    }
    },
    {
    "terms": {
    "inspections.endsOn": [
    "2018-11-01",
    "2018-11-02"
    ]
    }
    }
    ]
    }
    }
    }
    }
    ]
    }
    }
    ]
    }
    }
    }

    关于elasticsearch - 在ElasticSearch中搜索多个日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53731895/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com