博客

显示 Elasticsearch 索引中的字段

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

查看向 Elasticsearch 摄取数据的不同方法,并深入研究实际示例,尝试新事物。

Elasticsearch 拥有众多新功能,可帮助您针对自身用例构建优异的搜索解决方案。立即开始免费云试用,或在本地计算机上试用 Elastic。

本文将讨论如何在 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 索引中文档的title 和author 字段的值:

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

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

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

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

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

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
}

在此示例中,搜索响应将包括title 、author 和address.city 字段的值。

结论

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

这些内容对您有多大帮助?

相关内容

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

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

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

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

Gustavo Llermaly
如何显示 Elasticsearch 索引的字段

如何显示 Elasticsearch 索引的字段

JD Armada
在 Logstash 中使用 Ruby 脚本

在 Logstash 中使用 Ruby 脚本

Dai Sugimori
从索引中排除 Elasticsearch 字段

从索引中排除 Elasticsearch 字段

Kofi Bartlett

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。