ElasticSearch - 如何按类型搜索?

时间:2018-03-06 18:23:53

标签: elasticsearch caching elasticsearch-6

我已经使用给定的索引和类型将项目放入ElasticSearch。我该如何检索它?

详细说明:

official documentation说明了这一点:

GET /_search
{
    "query": {
        "type" : {
            "value" : "_doc"
        }
    }
}

但我不明白。我该怎么办?

我试图像这样运行它,但它不起作用:

curl XGET 'http://localhost:9200/disney/_search' -d '
{
    "query": {
        "type" : {
            "value" : "disneytype"
        }
    }
}'

这会引发错误:

Invoke-WebRequest : A positional parameter cannot be found that accepts argument
'http://localhost:9200/disney/_search'.
At line:1 char:1
+ curl XGET 'http://localhost:9200/disney/_search' -d '
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-WebRequest], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

任何想法如何正确运行?

2 个答案:

答案 0 :(得分:1)

您获得的错误与Elasticsearch无关。这是PowerShell的一些问题。将cURL来电替换为Invoke-WebRequest

Invoke-WebRequest -Method 'POST' -Uri 'http://localhost:9200/_search' -ContentType "application/json" -Body '
{
  "query": {
    "type": {
      "value": "disneytype"
    }
  }
}'

我个人更喜欢使用Kibana来发现我的ES索引。它更方便。

答案 1 :(得分:0)

另一种方法是像这样内联运行:

curl.exe -XGET --data-binary '{ "query": { "type" : { "value" : "disneytype" }, studioid: "AAAAA" } }' -H 'content-type: application/json;' http://localhost:9200/