Elasticsearch 字段名称别名

use*_*423 7 lucene elasticsearch

是否可以在elasticsearch中为字段名称设置别名?(就像索引名称可以别名一样)

例如:我有一个文件 {'firstname': 'John', 'lastname': 'smith'}

我想将“名字”别名为“fn”...

Kam*_*mal 9

只是一个快速更新,Elasticsearch6.4提出了一个名为Alias Datatype 的功能。检查下面的映射和查询作为示例。

请注意,字段的类型alias在下面的字段名映射中fn

示例映射:

PUT myindex
{
  "mappings": {
    "_doc": {
      "properties": {
        "firstname": {
          "type": "text"
        },
        "fn": {
          "type": "alias",
          "path": "firstname" 
        }
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

示例查询:

GET myindex/_search
{
  "query": {
    "match" : {
      "fn" : "Steve"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这个想法是使用alias创建倒排索引的实际字段。请注意,具有别名数据类型的字段并不用于write操作,而仅用于查询目的。

虽然您可以参考我提到的链接以获取更多详细信息,但以下只是其中的一些要点。

  • 字段别名仅在您的索引具有single mapping. 索引必须创建后6.xx版本或使用设置在旧版本中创建index.mapping.single_type: true
  • 可以用在queryingaggregationssortinghighlightingsuggestion操作
  • 目标字段必须是创建倒排索引的实际字段
  • 无法创建alias另一个alias字段
  • 不能用于alias多个字段。单个别名,单个字段。
  • 不能用作使用_source.


Man*_*lis 2

没有直接的字段别名功能。但是,您可以在映射中使用 index_name 属性在索引时重命名字段。

index_name :将存储在索引中的字段的名称。默认为属性/字段名称。

请参阅此处了解更多信息:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html