在我的场景中,我有两个应用程序(即A,B)都会将文档推送到ES。通常在慢速日志中我们能够获得
[2016-03-23 06:43:47,231][DEBUG][index.search.slowlog.fetch] took[5.8ms], took_millis[5], types[talk], stats[], search_type[QUERY_THEN_FETCH], total_shards[5], source[{"query":{"match":{"tags":"Java"}}}], extra_source[]
假设我在ES中启用了_meta字段,是否可以在这样的慢速日志中反映字段?
[2016-03-23 06:43:47,231][DEBUG]
[应用] [index.search.slowlog.fetch] took[5.8ms], took_millis[5], types[talk], stats[], search_type[QUERY_THEN_FETCH], total_shards[5], source[{"query":{"match":{"tags":"Java"}}}], extra_source[]
我想知道文件是从应用程序A还是B推出的? ES有可能吗?
我查看了_meta field的文档,但没有得到明确的信息,如果可能的话请说明一下?
Doc还说这个字段是not used by Elasticsearch
。这个stmt意味着什么,意味着我无法对该字段执行任何操作?
由于
答案 0 :(得分:1)
你不能用它(除非我误解了这个问题)。
模板中的_meta
字段将添加到索引中,而不是文档中。此外,您还需要在查询中使用该属性,以便slowlog可以使用它(尽管据我所知,没有这样的概念)。
要更好地了解_meta
,您可能需要在控制台中执行以下步骤(或将其翻译为cURL。
PUT my_index
{
"mappings": {
"user": {
"_meta": {
"class": "MyApp::User",
"version": {
"min": "1.0",
"max": "1.3"
}
}
}
}
}
GET my_index/_mapping
PUT my_index/user/1
{
"foo": "bar"
}
GET my_index/_mapping
GET my_index/user/1
DELETE /my_index