gpt4 book ai didi

elasticsearch - curl 无法获取数据

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

我尝试使用curl获取数据,并以这种方式运行查询:

curl -XGET '<ip>:9200/info-2019.08.21/_search?pretty' -H 'Content-Type: application/json' -d '
{
"query": {
"bool": {
"must": [
{
"term": {
"name" : "TP-01"
}
},
{
"query_string": {
"default_field": "_all",
"query": "*"
}
}
]
}
}
}'

但是我得到了这个响应但是没有数据返回
  "hits" : {
"total" : 0,
"max_score" : null,
"hits" : [ ]
}

但是我使用curl命令检查了索引,如下所示:
curl -XGET '<ip>:9200/info-2019.08.21/_search?pretty'

我可以得到如下记录
{
"_index" : "info-2019.08.21",
"_type" : "customer",
"_score" : 1.0,
"_source" : {
"name" : "TP-01",
"geoip" : {
"country" : "US",
"city" : "NY",
"long" : 125.683899,
"lat" : 25.1469,
"coordinates" : [
125.683899,
25.1469
]
},
"name" : "TP-01"
}
}
]

}

我做错了什么?

最佳答案

在不看到索引映射的情况下很难给出确切的答案,但是我可以猜出两件事:

  • 名称可能是一个文本字段。正如您所看到的here一样,术语查询对于文本字段是一个不好的选择,因为文本字段具有一些标准的分析器。将您的查询更改为匹配查询,它应该可以运行
  • 您正在使用什么版本的ES?我相信从ES 6开始,_all字段就是deprecated。我不确定第二个查询部分的最终目标是什么,但是要搜索所有字段,您可以只保留此部分,或者使用通配符作为默认字段。

  • 因此,对于我的设置并且没有自定义映射,您的查询可能如下所示:
    "query": {
    "bool": {
    "must": [
    {
    "match": {
    "name": {
    "query": "TP-01"
    }
    }
    },
    {
    "query_string": {
    "query": "*"
    }
    }
    ]
    }
    }

    关于elasticsearch - curl 无法获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57800685/

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