Elasticsearch官方文档阅读和中文翻译

Mapping(映射)

映射是定义文档及其包含的字段如何存储和索引的过程。

每个文档都是字段的集合,每个字段都有自己的数据类型()。在映射数据时,创建一个映射定义,其中包含与文档相关的字段列表。映射定义还包括元数据字段( ),如_source字段,它自定义如何处理文档关联的元数据。

使用动态映射和显式映射来定义数据。每种方法都提供了不同的好处,这取决于您在数据旅程中的位置。例如,显式映射不希望使用默认值的字段,或者更好地控制创建哪些字段。然后,您可以允许Elasticsearch动态添加其他字段。

请注意:在7.0.0之前,映射定义包括一个类型名。Elasticsearch 7.0.0和以后的版本不再接受默认映射。请参见删除映射类型()。

尝试映射选项 在搜索请求中定义运行时字段()以试验不同的映射选项,并通过在搜索请求期间覆盖映射中的值来修复索引映射值中的错误。

Mapping parameters(映射参数)

下面的页面提供了字段映射使用的各种映射参数的详细解释: 以下映射参数对某些或所有字段数据类型是通用的:

boost: 单个字段可以在查询时被自动提升——计算更多的相关分数,boost参数如下:

PUT my-index-000001
{
          
   
  "mappings": {
          
   
    "properties": {
          
   
      "title": {
          
   
        "type": "text",
        "boost": 2  # 标题字段上匹配的权重是内容字段的两倍,内容字段的默认增益为1.0。
      },
      "content": {
          
   
        "type": "text"
      }
    }
  }
}

请注意:这种提升仅适用于术语查询(前缀、范围和模糊查询不进行提升)。

您可以通过在查询中直接使用boost参数来达到同样的效果,例如下面的查询(带有字段time boost):

POST _search
{
          
   
  "query": {
          
   
    "match": {
          
   
      "title": {
          
   
        "query": "quick brown fox"
      }
    }
  }
}

等价于:

POST _search
{
          
   
  "query": {
          
   
    "match": {
          
   
      "title": {
          
   
        "query": "quick brown fox",
        "boost": 2
      }
    }
  }
}
经验分享 程序员 微信小程序 职场和发展