代码之家  ›  专栏  ›  技术社区  ›  chrlo

ElasticSearch:仅匹配没有的日期字段

  •  1
  • chrlo  · 技术社区  · 5 年前

    我正试图返回日期字段为“无”的单位ID列表。

    下面的示例只是一个片段。一个公司可以有几百个单位ID,但我只想返回一个活动单位列表(其中“validuntil”不是)。

    '_source': {'company': {'companyId': 1,
                           {'unit': [{'unitId': 1,
                                      'period': {'validUntil': '2016-02-07' }},
                                     {'unitId': 2,
                                      'period': {'validUntil': None }}]
    
    payload = {
        "size": 200,
        "_source": "company.companyId.unitId,
        "query":{
             "term":{
                "company.companyId": "1"
                }
            }
        }
    

    我尝试过几种不同的方法(筛选,必须不存在等),但是搜索返回了与该公司ID相关的所有单位ID或什么都没有,这让我怀疑我没有正确筛选。

    如果有任何帮助,日期格式为“日期选项时间”。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Shoham Ben Shitrit    5 年前

    看起来您的问题可能不在查询本身。
    据我所知,如果数组的类型不是嵌套的,则不能只返回该数组的一部分,
    我建议看看这个问题: select matching objects from array in elasticsearch