【发布时间】:2017-10-14 03:50:14
【问题描述】:
我已将带有 Elasticsearch 的 logstash 配置为输入和输出参数,如下所示:
输入
{
elasticsearch {
hosts => ["hostname" ]
index => 'indexname'
type => 'type'
user => 'username'
password => 'password'
docinfo => true
query => '{ "query": { "match": { "first_name": "mary" } }}'
}
}
输出
{
elasticsearch {
hosts => ["hostname" ]
index => 'indexname'
user => 'username'
password => 'password'
}
}
我的索引数据如下:
PUT person/person/3
{
"first_name" : "mary"
}
PUT person/person/4
{
"first_name" : "mary.m"
}
PUT person/person/5
{
"first_name" : "mary.k"
}
当我在 ES 上运行以下查询时
GET indexname/_search
{
"query": {
"match": {
"first_name": "mary"
}
}
}
返回
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0.2876821,
"hits": [
{
"_index": "person",
"_type": "person",
"_id": "3",
"_score": 0.2876821,
"_source": {
"first_name": "mary"
}
}
]
}
}
虽然 logstash 管道已成功启动,但它不会在 ES 中记录此查询,因为我在输入部分使用查询作为 "match": { "first_name": "mary"}。
【问题讨论】:
-
看来您采购的索引与您将文档接收到的索引相同。你的用例到底是什么?如果查询没有产生任何文档,那么 Logstash 也将无法加载任何文档。
-
我已经更新了我的问题
-
你确定你是在
indexname索引而不是person搜索??? -
好的.. 人只是索引名。我更改了它的 indexname 以隐藏它的实际名称。在实际场景中,我只在任何地方使用人
-
那么您确定您的用户名/密码凭据吗?
标签: elasticsearch logstash nest elasticsearch-plugin