Elasticsearch 基础教程

Elasticsearch 高级教程

Elasticsearch 插件

Elasticsearch 笔记

Elasticsearch FAQ

elasticsearch mapping


Elasticsearch 是一个开源的分布式搜索和分析引擎,用于存储、搜索和分析大量数据。在 Elasticsearch 中,映射(Mapping)是定义文档如何存储和索引的过程。映射告诉 Elasticsearch 每个字段的数据类型、分析器和其他属性,以便正确地索引和搜索文档。

以下是关于 Elasticsearch 映射的详细内容以及示例:

数据类型(Data Types)

Elasticsearch 提供了多种数据类型,用于定义字段的数据类型。

常见的数据类型有:

  • Text:用于存储文本数据,支持全文搜索。
  • Keyword:类似于 Text,但不会进行分词,通常用于精确匹配和聚合。
  • Long、Integer、Short、Byte、Double、Float:数值类型。
  • Date:日期类型。
  • Boolean:布尔类型。
  • Array、Object:复杂数据类型。

示例:

{
  "mappings": {
    "properties": {
      "title": {
        "type": "text"
      },
      "category": {
        "type": "keyword"
      },
      "price": {
        "type": "double"
      },
      "publish_date": {
        "type": "date"
      }
    }
  }
}

分析器(Analyzers): 分析器用于将文本数据分割为单词,并进行词干化、小写转换等处理,以便于全文搜索。Elasticsearch 提供了多种内置分析器,也支持自定义分析器。

示例:

{
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "analyzer": "standard"
      }
    }
  }
}

复杂类型(Complex Types)

Elasticsearch 支持嵌套对象和数组字段,用于存储复杂数据结构。可以在映射中嵌套对象以及定义数组字段。

示例:

{
  "mappings": {
    "properties": {
      "author": {
        "type": "object",
        "properties": {
          "name": { "type": "text" },
          "age": { "type": "integer" }
        }
      },
      "tags": {
        "type": "keyword"
      }
    }
  }
}

动态映射(Dynamic Mapping)

Elasticsearch 支持自动创建映射,当索引中插入新的字段时,Elasticsearch 可以自动识别字段的数据类型并创建映射。

示例:

{
  "mappings": {
    "dynamic": "strict", 
    "properties": {
      "title": { "type": "text" },
      "new_field": { "type": "integer" }
    }
  }
}

映射参数(Mapping Parameters)

映射还可以包含一些参数,用于控制字段的行为,如是否可搜索、是否存储原始值等。

示例:

{
  "mappings": {
    "properties": {
      "description": {
        "type": "text",
        "index": true, 
        "store": true
      }
    }
  }
}

以上是关于 Elasticsearch 映射的一些详细内容及示例。映射是索引中非常重要的一部分,它决定了如何有效地存储和搜索数据。根据你的数据需求和业务场景,你可以根据上述内容来定义适合的映射结构。

elasticsearch(es)获取索引的 mapping 的方法是什么?es 提供了 _mapping 接口。 ...
在Elasticsearch中,映射指的是mapping,用来定义一个文档以及其所包含的字段如何被存储和索引,可以在映射中事先定义字段的数据 ...
在 Elasticsearch 中,默认排序是按照相关性的评分(_score)进行降序排序,也可以按照字段的值排序、多级排序、多值字段排序、 ...
Elasticsearch是Java语言编写的,所以运行Elasticsearch首先需要保证Java程序的运行环境。按照下面的操作,在前台 ...
Elasticsearch是一个基于Lucene的搜索和数据分析工具,它提供了一个分布式服务。Elasticsearch是遵从Apache开 ...