是否可以在elasticsearch中为字段名称设置别名? (就像索引名称可以别名一样)
例如:我有一份文件{'名字':'约翰','姓氏':'史密斯'}
我想别名'名字'到了' ...
答案 0 :(得分:2)
没有直接的字段别名功能。但是,您可以使用映射中的index_name属性在索引时重命名字段。
index_name:将存储在索引中的字段的名称。 默认为属性/字段名称。
有关详细信息,请参阅此处:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/mapping-core-types.html
答案 1 :(得分:2)
快速更新,Elasticsearch 6.4
推出了名为 Alias Datatype 的功能。检查下面的映射并作为示例查询。
请注意,在以下字段名alias
的映射中,字段的类型为fn
PUT myindex
{
"mappings": {
"_doc": {
"properties": {
"firstname": {
"type": "text"
},
"fn": {
"type": "alias",
"path": "firstname"
}
}
}
}
}
GET myindex/_search
{
"query": {
"match" : {
"fn" : "Steve"
}
}
}
这个想法是将alias
用于创建倒排索引的实际字段。请注意,具有别名数据类型的字段不用于write
操作,而仅用于查询目的。
尽管您可以参考我提到的链接以获取更多详细信息,但以下仅是一些重点。
single mapping
时才使用字段别名。必须在6.xx
之后的版本中创建索引,或者在旧版本中使用设置index.mapping.single_type: true
querying
,aggregations
,sorting
,highlighting
和suggestion
操作中使用alias
字段的alias
alias
。单一别名,单一字段。_source
进行源过滤的一部分。 答案 2 :(得分:1)
为现有字段fn
添加别名firstname
PUT myindex/_mapping
{
"properties": {
"fn": {
"type": "alias",
"path": "firstname"
}
}
}
从Elasticsearch 7开始应该以此方式工作。
答案 3 :(得分:0)
您可以尝试使用所需字段上的过滤器在索引上创建别名。必须以这样的方式编写过滤器,以便选择字段中的所有条目。请参阅here中的过滤别名部分。但我有兴趣知道你的用例。为什么要在特定字段上创建别名。