首页 > 解决方案 > Elasticsearch 中的“映射”有什么作用?

问题描述

我刚开始学习 Elasticsearch。我正在尝试创建索引、添加数据、删除数据和搜索数据。我也可以理解 Elasticsearch 的设置。

使用“PUT”使用设置时

{
"settings": {
"index.number_of_shards" : 1,
"index.number_of_replicas" : 0
 }
}

使用“GET”检索设置信息时

{
"dsm" : {
"settings" : {
  "index" : {
    "creation_date" : "1555487684262",
    "number_of_shards" : "1",
    "number_of_replicas" : "0",
    "uuid" : "qsSr69OdTuugP2DUwrMh4g",
    "version" : {
      "created" : "7000099"
    },
    "provided_name" : "dsm"
  }
}
}
}

然而,

Elasticsearch 中的“映射”有什么作用?

{
  "kibana_sample_data_flights" : {
"aliases" : { },
"mappings" : {
  "properties" : {
    "AvgTicketPrice" : {
      "type" : "float"
    },
    "Cancelled" : {
      "type" : "boolean"
    },
    "Carrier" : {
      "type" : "keyword"
    },
    "Dest" : {
      "type" : "keyword"
    },
    "DestAirportID" : {
      "type" : "keyword"
    },
    "DestCityName" : {

    },  // just part of data

标签: elasticsearchelasticsearch-5

解决方案


映射文档是一种描述数据结构和定义类型(例如布尔值、文本、关键字)的方式。这些类型很重要,因为它们决定了如何索引和分析您的字段。

Elasticsearch 支持动态映射,因此可以有效地执行对适当类型的自动最佳猜测,但您可能希望覆盖这些。

我发现这是一篇解释映射过程的有用文章: https ://www.elastic.co/blog/found-elasticsearch-mapping-introduction

索引由字段类型确定,例如,当类型为“关键字”时,搜索引擎将期望完全匹配,当类型为“文本”时,搜索引擎将尝试确定文档与查询词的匹配程度,以及这样做将执行“全文搜索”。

例如: - 搜索 jump 也应该匹配 jumped、jumps、jumping,甚至可能是 jump。

这是一篇很棒的文章,描述了精确搜索与全文搜索,我在这里举了一个跳转示例:https ://www.elastic.co/guide/en/elasticsearch/guide/current/_exact_values_versus_full_text.html

elasticsearch 的大部分功能在于映射和分析。


推荐阅读