gpt4 book ai didi

elasticsearch - elasticsearch查询中的“exists”对对象不起作用

转载 作者:行者123 更新时间:2023-12-02 23:45:52 24 4
gpt4 key购买 nike

我正在尝试使用Kibana Dev执行存在搜索,但不适用于嵌入式对象,我也不知道为什么。

这是映射的摘录:

{
"myIndex": {
"mappings": {
"dynamic": "false",
"properties": {
"id": {
"type": "integer"
},
"created": {
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}
}

当我知道以下查询存在时,它始终不返回任何内容:
{
"query": {
"exists": {
"field": "created.firstName"
}
}
}

它不是嵌套的,所以这不是问题。如果我用“id”代替“created.firstName”,它将正常工作。

使用ES 7.4.0。

最佳答案

尝试反向搜索

GET /_search
{
"query": {
"bool": {
"must_not": {
"exists": {
"field": "created.firstName"
}
}
}
}
}

如果这没有返回任何结果,您将知道需要重新编制索引。

复制步骤:
PUT ex
{
"mappings": {
"dynamic": "false",
"properties": {
"id": {
"type": "integer"
},
"created": {
"properties": {
"firstName": {
"type": "keyword"
},
"lastName": {
"type": "keyword"
}
}
}
}
}
}

POST ex/_doc
{
"id": 1,
"created": {
"firstName": "name"
}
}

GET ex/_search
{
"query": {
"exists": {
"field": "created.firstName"
}
}
}

DELETE ex

关于elasticsearch - elasticsearch查询中的“exists”对对象不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61122702/

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