elasticsearch 无法使用curl获取数据
我尝试使用curl获取数据,并以以下方式运行查询:elasticsearch 无法使用curl获取数据,elasticsearch,curl,elasticsearch,Curl,我尝试使用curl获取数据,并以以下方式运行查询: curl -XGET '<ip>:9200/info-2019.08.21/_search?pretty' -H 'Content-Type: application/json' -d ' { "query": { "bool": { "must": [ { "term": { "name" : "TP-01" }
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": "*"
}
}
]
}
}
}'
但是我已经用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"
}
}
]
}
我做错了什么?如果不查看索引映射,很难给出准确的答案,但我可以猜到两件事:
\u all
字段是从ES 6开始出现的。我不确定您的第二个查询部分的最终目标是什么,但要搜索所有字段,您可以将此部分保留,或者使用通配符作为默认字段"query": {
"bool": {
"must": [
{
"match": {
"name": {
"query": "TP-01"
}
}
},
{
"query_string": {
"query": "*"
}
}
]
}
}
您需要在
-H
周围添加一些空格。您可以共享索引的映射吗?猜测这是标准分析器删除连字符的结果。尝试更改查询以使用关键字字段:“name.keyword”:“TP-01”
"query": {
"bool": {
"must": [
{
"match": {
"name": {
"query": "TP-01"
}
}
},
{
"query_string": {
"query": "*"
}
}
]
}
}