ElasticSearch获取字段,即使它们为空或为空

三泰

我有以下用于样本数据集的elasticsearch术语过滤器。

"filter":{
   "type":"and",
   "and":[
      {
         "type":"terms",
         "terms":{
            "field":"car_registration_no.raw",
            "terms":[
               "61123",
               "61124",
               "61125"
            ]
         }
      }
   ]
}

以下是示例结果:

{
    "result": [
      {
        "totalHits": 3,
        "hits": [
          {
            "schemaid": "adef89sesdceasjkmn5dlky6djj7kk189lkdqsc",
            "localVersion": 2,
            "row": {
              "primaryKey": {
                "car_registration_no": "61123"
              },
              "columns": {
                "model": "Nissan",
                "submodel": "Saloon",
                "date_used": 1597017600000
              },
              "editsVersion": 0
            },
            "highlight": {}
          },
          {
            "schemaid": "adef89sesdceasjkmn5dlky6djj7kk189lkdqsc",
            "localVersion": 2,
            "row": {
              "primaryKey": {
                "car_registration_no": "61124"
              },
              "columns": {
                "model": "Nissan",
                "submodel": "Saloon",
                "accidents": "1",
                "accident_date": "12/12/2019",
                "date_used": 1597017600000
              },
              "editsVersion": 0
            },
            "highlight": {}
          },
          {
            "schemaid": "adef89sesdceasjkmn5dlky6djj7kk189lkdqsc",
            "localVersion": 2,
            "row": {
              "primaryKey": {
                "car_registration_no": "61125"
              },
              "columns": {
                "model": "Nissan",
                "submodel": "Saloon",
                "date_used": 1597017600000
              },
              "editsVersion": 0
            },
            "highlight": {}
          }
        ],
        "counts": {},
        "nextToken": null
      }
    ]
  }

只有一部汽车(编号61124的汽车)发生了事故记录,我如何才能为其他汽车检索空值或空白值?

我已经已位于简称elasticsearch但因为我在这个初学者,我不能够理解如何处理它。因此,预期结果将是我希望看到空字段accidentsaccident_date如果没有值,则显示为null或空白,在上面的示例中,car_registration no 61123和61125具有空值,因此我想检索所有字段不论空白值如何。

{
    "result": [
      {
        "totalHits": 3,
        "hits": [
          {
            "schemaid": "adef89sesdceasjkmn5dlky6djj7kk189lkdqsc",
            "localVersion": 2,
            "row": {
              "primaryKey": {
                "car_registration_no": "61123"
              },
              "columns": {
                "model": "Nissan",
                "submodel": "Saloon",
                "accidents": "null",
                "accident_date": "null",
                "date_used": 1597017600000
              },
              "editsVersion": 0
            },
            "highlight": {}
          },
          {
            "schemaid": "adef89sesdceasjkmn5dlky6djj7kk189lkdqsc",
            "localVersion": 2,
            "row": {
              "primaryKey": {
                "car_registration_no": "61124"
              },
              "columns": {
                "model": "Nissan",
                "submodel": "Saloon",
                "accidents": "1",
                "accident_date": "12/12/2019",
                "date_used": 1597017600000
              },
              "editsVersion": 0
            },
            "highlight": {}
          },
          {
            "schemaid": "adef89sesdceasjkmn5dlky6djj7kk189lkdqsc",
            "localVersion": 2,
            "row": {
              "primaryKey": {
                "car_registration_no": "61125"
              },
              "columns": {
                "model": "Nissan",
                "submodel": "Saloon",
                "accidents": "null",
                "accident_date": "null",
                "date_used": 1597017600000
              },
              "editsVersion": 0
            },
            "highlight": {}
          }
        ],
        "counts": {},
        "nextToken": null
      }
    ]
  }
Elasticsearch忍者

您想要的是能够查看NULL文档值,默认情况下这是不可能的,因为NULL值没有索引和可搜索,请参阅官方NULL_VALUES文档以获取更多信息

空值不能被索引或搜索。当字段设置为null(或空数组或null值的数组)时,将其视为该字段没有值。

但是要实现用例,您需要null_value在映射中提供参数,同时在对文档建立索引时,如果您没有收到任何值,但在文档中传递了null_value参数值(如以下完整示例所示)

索引映射

{
    "mappings": {
        "properties": {
            "accidents": {
                "type": "keyword",
                "null_value": "NULL" --> note this
            },
            "accidents_date": {
                "type": "keyword",
                "null_value": "NULL"
            },
            "car_registration_no" :{
                "type" : "keyword"
            }
        }
    }
}

索引样本文档

{
    "accidents" : "1",
    "accidents_date": "12/12/2019",
    "car_registration_no" : "61124"
}
{
    "accidents" : "null",
    "accidents_date": "null",
    "car_registration_no" : "61125"
}
{
    "accidents" : "null",
    "accidents_date": "null",
    "car_registration_no" : "61123"
}

搜索查询

{
    "query": {
        "terms": {
            "car_registration_no": [
                "61124",
                "61123",
                "61125"
            ],
            "boost": 1.0
        }
    }
}

和预期的搜索结果

  "hits": [
            {
                "_index": "carindex",
                "_type": "_doc",
                "_id": "1",
                "_score": 1.0,
                "_source": {
                    "accidents": "null", --> note this
                    "accidents_date": "NULL",
                    "car_registration_no": "61123"
                }
            },
            {
                "_index": "carindex",
                "_type": "_doc",
                "_id": "2",
                "_score": 1.0,
                "_source": {
                    "accidents": "1",
                    "accidents_date": "12/12/2019",
                    "car_registration_no": "61124"
                }
            },
            {
                "_index": "carindex",
                "_type": "_doc",
                "_id": "3",
                "_score": 1.0,
                "_source": {
                    "car_registration_no": "61125"
                }
            }
        ]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ElasticSearch:如何编写查询,其中字符串字段为null或为空?

来自分类Dev

Elasticsearch获取数据,其中字段不为空/字段为空或字段存在/字段不存在

来自分类Dev

如何检查DateTime字段是否为null或为空?

来自分类Dev

如果为null或为空,则不要插入字段

来自分类Dev

QMessageLogContext的字段(例如:文件,函数,行)为空或为零

来自分类Dev

当 ACF 字段为空时隐藏它们

来自分类Dev

即使字段为空也发送联系表格

来自分类Dev

即使左联接为空也显示字段

来自分类Dev

检查数组是否为空或为空

来自分类Dev

使用递归组合数组值,即使它们为空

来自分类Dev

即使它们为空,我如何允许所有参数?

来自分类Dev

如何在跑道应用程序中获取所有 FieldIds(即使某些字段为空)

来自分类Dev

为elasticsearch date字段提供空值

来自分类Dev

如何在elasticsearch中获取空字段?

来自分类Dev

如何将 mongo objectId 字段设置为 null 或为空甚至删除该字段?

来自分类Dev

字段存在或为空的左连接

来自分类Dev

反射-继承的字段全为null或为空

来自分类Dev

估计气体始终为空或为零

来自分类Dev

CSVHELPER 在值为 null 或为空时有条件地忽略写入字段

来自分类Dev

为什么即使立即实例化我的字段也为空?

来自分类Dev

ReactJS-新项目,即使该字段为空

来自分类Dev

mysql按字段顺序显示行,即使为空

来自分类Dev

即使某些对象为空,也显示该字段

来自分类Dev

即使必填字段为空,我的表单也会提交

来自分类Dev

JasperReports:如果框架B中的字段为空或为空,则将框架B隐藏在框架A中

来自分类Dev

ElasticSearch搜索空字段

来自分类Dev

检查一个枚举是否为空或为空

来自分类Dev

如果在获取过程中数据为Null或为空,则PHP Mysqli替换逗号

来自分类Dev

即使请求成功,获取的响应也为空

Related 相关文章

  1. 1

    ElasticSearch:如何编写查询,其中字符串字段为null或为空?

  2. 2

    Elasticsearch获取数据,其中字段不为空/字段为空或字段存在/字段不存在

  3. 3

    如何检查DateTime字段是否为null或为空?

  4. 4

    如果为null或为空,则不要插入字段

  5. 5

    QMessageLogContext的字段(例如:文件,函数,行)为空或为零

  6. 6

    当 ACF 字段为空时隐藏它们

  7. 7

    即使字段为空也发送联系表格

  8. 8

    即使左联接为空也显示字段

  9. 9

    检查数组是否为空或为空

  10. 10

    使用递归组合数组值,即使它们为空

  11. 11

    即使它们为空,我如何允许所有参数?

  12. 12

    如何在跑道应用程序中获取所有 FieldIds(即使某些字段为空)

  13. 13

    为elasticsearch date字段提供空值

  14. 14

    如何在elasticsearch中获取空字段?

  15. 15

    如何将 mongo objectId 字段设置为 null 或为空甚至删除该字段?

  16. 16

    字段存在或为空的左连接

  17. 17

    反射-继承的字段全为null或为空

  18. 18

    估计气体始终为空或为零

  19. 19

    CSVHELPER 在值为 null 或为空时有条件地忽略写入字段

  20. 20

    为什么即使立即实例化我的字段也为空?

  21. 21

    ReactJS-新项目,即使该字段为空

  22. 22

    mysql按字段顺序显示行,即使为空

  23. 23

    即使某些对象为空,也显示该字段

  24. 24

    即使必填字段为空,我的表单也会提交

  25. 25

    JasperReports:如果框架B中的字段为空或为空,则将框架B隐藏在框架A中

  26. 26

    ElasticSearch搜索空字段

  27. 27

    检查一个枚举是否为空或为空

  28. 28

    如果在获取过程中数据为Null或为空,则PHP Mysqli替换逗号

  29. 29

    即使请求成功,获取的响应也为空

热门标签

归档