所以当我已经拥有它的唯一ID时,我试图能够访问elasticsearch中的对象信息。这是我当前的查询:
curl -XGET 'localhost:9200/packetbeat-2017.03.23/AVr8l8YfyH-VqZ9J_0HZ?pretty'
这是我从中获得的回应:
{
"error" : {
"root_cause" : [
{
"type" : "illegal_argument_exception",
"reason" : "No endpoint or operation is available at [AVr8l8YfyH-VqZ9J_0HZ]"
}
],
"type" : "illegal_argument_exception",
"reason" : "No endpoint or operation is available at [AVr8l8YfyH-VqZ9J_0HZ]"
},
"status" : 400
}
我知道这个索引和这个ID都存在,关于如何做到的任何想法?
答案 0 :(得分:1)
您的请求中缺少_type
。所以你想要的是......
curl -XGET 'localhost:9200/packetbeat-2017.03.23/{_type}/AVr8l8YfyH-VqZ9J_0HZ?pretty'
,更一般地说
curl -XGET 'localhost:9200/index/type/id'
答案 1 :(得分:0)
您在查询中遗漏了_type
。
ElasticSearch中的索引就像一个数据库。而Type类似于表格,ES中的文档就像表格中的记录。 想象一下,你试图从数据库中检索一条记录,而没有指定你需要记录的表。这就是现在发生的事情。
因此,您的查询应为curl -XGET 'localhost:9200/packetbeat-2017.03.23/yourindextypename/AVr8l8YfyH-VqZ9J_0HZ?pretty'
但是,在ES中,您也可以像下面一样查询,
curl -XGET 'localhost:9200/packetbeat-2017.03.23/_search
{"query":{"term":{"_id":{"value":"AVr8l8YfyH-VqZ9J_0HZ"}}}}'
我建议安装Kibana和Sense,以便您可以使用Sense UI进行查询,以便轻松排除故障。
kibana- 4.6.3 [摘自https://www.elastic.co/jp/downloads/kibana]
Sense(kibana app)[https://www.elastic.co/guide/en/sense/current/installing.html]
After having Kibana installed, access Sense UI
Kibana: http://localhost:5601/
Sense: http://localhost:5601/app/sense