以下是我查询弹性搜索数据库的精确搜索(工作正常):
curl -XPOST 'localhost:9200/test/_search?pretty' -d '
{
"size":1,
"query": {
"match": {
"log.device":"xxxx"
}
},
"sort" : [ {
"_timestamp" :
{
"order":"desc"
}
}]
}'
我想通过使用插件elasticsearch的logstash做同样的事情。但是,没有"尺寸"网站https://www.elastic.co/guide/en/logstash/current/plugins-filters-elasticsearch.html
中提供的选项elasticsearch {
hosts => ["localhost:9200/test"]
query => "log.device:%{[log][device]}"
sort => "@timestamp:desc"
}
你是如何解决这个问题的?
感谢您的关注和帮助。
乔
答案 0 :(得分:1)
由于该插件的大小为hardcoded to 1,因此您无需添加任何大小参数。
同时确保对_timestamp
而不是@timestamp
进行排序。
最后,hosts
参数不带任何索引。
所以:
elasticsearch {
hosts => ["localhost:9200"]
query => "log.device:%{[log][device]}"
sort => "_timestamp:desc"
}
如果你真的需要指定一个索引,我们还不支持,但我上周created a PR才支持这个。因此,在合并和发布之前,您将能够使用我的版本而不是官方版本:
$> git clone http://github.com/consulthys/logstash-filter-elasticsearch
$> cd logstash-filter-elasticsearch
$> gem build logstash-filter-elasticsearch.gemspec
$> $LS_HOME/bin/plugin -install logstash-filter-elasticsearch-2.0.4.gem
安装修改后的插件后,您将能够处理特定的索引:
elasticsearch {
hosts => ["localhost:9200"]
index => "test"
query => "log.device:%{[log][device]}"
sort => "_timestamp:desc"
}