博客

显示 Elasticsearch 索引中的字段

探索在 Elasticsearch 索引中显示字段的技术。

Check out the different ways to ingest data into Elasticsearch and dive into practical examples to try something new.

Elasticsearch is packed with new features to help you build the best search solutions for your use case. Start a free cloud trial or try Elastic on your local machine now.

本文将讨论如何在 Elasticsearch 索引中显示字段。这对了解数据结构、识别特定字段和排除故障非常有用。我们将讨论以下主题

  1. 使用 _mapping API 获取字段信息

  2. 使用 _search API 显示字段值

  3. 使用fields 参数 过滤字段

  4. 显示嵌套字段

1.使用 _mapping API 获取字段信息

_mapping API 允许您检索一个或多个索引的映射定义。这包括有关字段、其数据类型和其他属性的信息。要检索特定索引的映射,请使用以下请求:

GET /<index_name>/_mapping

例如,如果有一个名为my_index 的索引,可以通过以下请求检索其映射:

GET /my_index/_mapping

响应将包括索引的映射定义,其中包含有关字段及其属性的信息。

还可以检索某一特定字段的映射。如果您的映射范围很大,而您只想专注于某一特定领域,这将非常有用。要检索特定字段的映射,请使用以下请求:

GET /my_index/_mapping/field/my_field

您还可以检索多个字段的映射,方法是用逗号分隔字段名,如下所示:

GET /my_index/_mapping/field/my_field_1,my_field_2,my_field_3

2.使用 _search API 显示字段值

要显示 Elasticsearch 索引中字段的值,可以使用_search API。默认情况下,_search API 会返回_source 字段,其中包含被索引的原始 JSON 文档。要只显示特定字段,可以在搜索请求中使用_source 参数。

下面是一个搜索请求示例,它返回my_index 索引中文档的titleauthor 字段的值:

GET /my_index/_search
{
  "query": {
    "match_all": {}
  },
  "_source": ["title", "author"]
}

在本例中,_source 参数指定了要返回的字段。

3.使用字段参数过滤字段

您还可以使用fields 参数过滤搜索响应中返回的字段。如果您只需要特定字段,并希望减小回复的大小,这可能会很有用。fields 参数接受一个字段名或通配符模式数组。

例如,要只返回my_index 索引中文档的titleauthor 字段,可以使用以下搜索请求:

GET /my_index/_search
{
  "query": {
    "match_all": {}
  },
  "fields": ["title", "author"],
  "_source": false
}

请注意,为了不返回源文件,_source 参数设置为 false。

要返回text 数据类型的所有字段,可以使用通配符模式,如下所示:

GET /my_index/_search
{
  "query": {
    "match_all": {}
  },
  "fields": ["*.text"],
  "_source": false
}

4.显示嵌套字段

如果索引包含嵌套字段,可以使用点符号在fields 参数中指定嵌套字段路径。例如,如果嵌套字段的名称是address.city ,可以像这样将其包含在搜索响应中:

GET /my_index/_search
{
  "query": {
    "match_all": {}
  },
  "fields": ["title", "author", "address.city"],
  "_source": false
}

在此示例中,搜索响应将包括titleauthoraddress.city 字段的值。

结论

总之,在 Elasticsearch 索引中显示字段可以使用_mapping API 来检索字段信息,使用_search API 来显示字段值。您可以使用_sourcefields 参数过滤搜索响应中返回的字段,并使用点符号显示嵌套字段。这些技术可以帮助您了解数据结构、识别特定字段并排除故障。

相关内容

当 TSDS 遇到 ILM:设计不会拒绝延迟数据的时序数据流

Bret Wortman

作为代码的弹性开放式网络爬虫

Gustavo Llermaly

如何显示 Elasticsearch 索引的字段

JD Armada

在 Logstash 中使用 Ruby 脚本

Dai Sugimori

从索引中排除 Elasticsearch 字段

Kofi Bartlett