我正在运行一个问题,我想比较两个弹性指数并找到其中一个指数丢失的文件。 我正在开发 ES 5.6 我有一个 logstash 管道,它将具有“0”和“1”值的字段转换为 bool“true”和“false”。 此管道采用名为 client-login 的索引,添加另一个具有适当 bool 值的字段并创建一个新索引 client-login-bool
input {
elasticsearch {
hosts => "ELASTIC_HOSTS_PLACEHOLDER"
index => "MIGRATION_SOURCE_INDEX"
scroll => '10m'
docinfo => true
query => '
{
"query": {
"match": {
"_type": "client-login"
}
}
}'
}
}
filter {
mutate {
add_field => { "bool_user_is_primary" => false }
}
mutate {
convert => {
"user_is_primary" => "integer"
}
}
ruby {
code => "
account = event.get('user_is_primary')
if account == 1
event.set('bool_user_is_primary', 'true')
end
"
}
mutate {
convert => {
"bool_user_is_primary" => "boolean"
}
}
mutate {
remove_field => [
"user_is_primary"
]
}
}
output {
elasticsearch {
hosts => "ELASTIC_HOSTS_PLACEHOLDER"
index => "MIGRATION_DESTINATION_INDEX"
document_id=> '%{[@metadata][_id]}'
}
}
这是 logstash 管道,源索引“client-login”具有多种类型的文档。我只需要使用类型为“client-login”的文档添加布尔字段并在目标索引“client-login-bool”中索引文档 问题是目标索引中的文档计数与源索引中的文档计数不同。这就是为什么我想做一个比较,看看遗漏了哪个文件。 另外,如果我从输出中删除 document_id,文档计数是相同的。
请帮帮我,我在这个问题上坚持了一个多星期,已经用尽了所有的想法。 提前致谢!