在Elasticsearch中,可以通过使用多字段映射来实现共享字段名称。以下是一种解决方法,使用了一个示例索引和一个示例文档类型。
首先,创建一个索引和映射:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"shared_field": {
"type": "text",
"fields": {
"field1": {
"type": "keyword"
},
"field2": {
"type": "text"
}
}
}
}
}
}
}
然后,创建一个文档:
PUT my_index/my_type/1
{
"shared_field": "Hello World"
}
接下来,可以使用不同字段名称来搜索共享字段:
POST my_index/_search
{
"query": {
"term": {
"shared_field.field1": "Hello"
}
}
}
这将返回包含"Hello"的文档。
同时,也可以使用另一个字段名称来搜索共享字段:
POST my_index/_search
{
"query": {
"match": {
"shared_field.field2": "World"
}
}
}
这将返回包含"World"的文档。
通过这种方式,可以在Elasticsearch中实现共享字段名称,而不需要为每个字段定义不同的名称。
下一篇:不同字段的相同验证器