elasticsearch 无法使用curl获取数据,elasticsearch,curl,elasticsearch,Curl" /> elasticsearch 无法使用curl获取数据,elasticsearch,curl,elasticsearch,Curl" />

elasticsearch 无法使用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获取数据,并以以下方式运行查询:

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"
    }
  }
]
}


我做错了什么?

如果不查看索引映射,很难给出准确的答案,但我可以猜到两件事:

  • 名称可能是一个文本字段。正如您所看到的,对于文本字段来说,术语查询是一个糟糕的选择,因为文本字段有一些标准的分析器。将查询更改为aa匹配查询,它应该可以工作
  • 您使用的是什么版本的ES?我相信
    \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": "*"
            }
          }
        ]
      }
    }