elasticsearch 使用中的_meta 字段?

_meta field in elasticsearch usage?

在我的场景中,我有两个应用程序(i.e.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 字段,是否可以像这样在 slowlogs 中反映该字段?

[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 的文档,但没有得到关于它的明确信息,如果可能的话请说明一下?

文档还说这个字段是not used by Elasticsearch。这个 stmt 是什么意思,意思是我不能在这个字段上执行任何操作?

谢谢

你不能为此使用它(除非我误解了这个问题)。

模板中的 _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