Да, это вполне выполнимо, используя «настраиваемое все поле» поле типа completion
Сначала создайте индекс со всеми типами и сделайтеОбязательно скопируйте каждое поле в настраиваемое поле типа completion
:
PUT my_index
{
"mappings": {
"type1": {
"properties": {
"field1": {
"type": "text",
"copy_to": "my_all"
},
"field2": {
"type": "text",
"copy_to": "my_all"
},
"my_all": {
"type": "completion"
}
}
},
"type1": {
"properties": {
"field1": {
"type": "text",
"copy_to": "my_all"
},
"field2": {
"type": "text",
"copy_to": "my_all"
},
"my_all": {
"type": "completion"
}
}
}
}
}
Затем вы будете запрашивать данные завершения, как это (т.е. без указания какого-либо типа отображения и использованияобщее my_all
поле):
POST my_index/_search
{
"suggest": {
"my-suggest": {
"prefix": "bla",
"completion": {
"field": "my_all"
}
}
}
}