我设置了ElasticSearch,我可以上传我的文件。它包含一个json对象列表。
{
"Indicator": "Alabama",
"Level": 468671,
"Units": "Billion Btu",
"As Of": 2011,
"YTD": "-4.95%",
"-5": 469036,
"-10": 460201
},
{
"Indicator": "Alaska",
"Level": 33524,
"Units": "Billion Btu",
"As Of": 2011,
"YTD": "-0.10%",
"-5": 20654,
"-10": 17878
},
{
"Indicator": "Arizona",
"Level": 174841,
"Units": "Billion Btu",
"As Of": 2011,
"YTD": "4.12%",
"-5": 173934,
"-10": 280064
}
我使用了命令
curl -XPUT 'http://localhost:9200/coal/production/1' -d @coal.json
并插入索引。但是,当我去查询它时,我得到了一切。
这是我正在运行的查询。
curl -XGET 'http:localhost:9200/coal/production/_search' -d '{
"query": {
"match": {
"Indicator": "Alabama"
}
}
}'
我想只收回第一件商品。我是否错误地设置了索引?我觉得我在这里错过了一些东西。
答案 0 :(得分:3)
这是因为您已将3个文档编入索引为只有一个:使用PUT / {index} / {type} / {id}是您执行单个插入的方式。
尝试制作match_all
这样的查询:
curl -XGET 'http:localhost:9200/coal/production/_search'
您将看到只有一个包含所有内容的文档。
您有两种可能的解决方案,请选择: