Ответ 1
Существует специальное поле _all
, которое по умолчанию получает копию всех других полей. Вы можете управлять включением в поле _all
с помощью атрибута include_in_all
. Однако вы ограничены одним полем, подобным этому. Если вам нужно больше одного, вам нужно будет обработать его на стороне поиска, выполнив поиск по нескольким полям.
Также возможно реализовать функциональность, похожую на copyField, с помощью multi_field
с атрибутом "path": "just_name"
:
curl -XPUT localhost:9200/test-idx -d '{
"settings": {
"index": {
"number_of_shards": 1,
"number_of_replicas": 0
}
},
"mappings": {
"doc": {
"properties": {
"first_name": {
"type": "multi_field",
"path": "just_name",
"fields": {
"first_name": {"type": "string", "index": "analyzed"},
"name": {"type": "string","index": "analyzed"}
}
},
"last_name": {
"type": "multi_field",
"path": "just_name",
"fields": {
"last_name": {"type": "string", "index": "analyzed"},
"name": {"type": "string","index": "analyzed"}
}
}
}
}
}
}'
echo
curl -XPUT localhost:9200/test-idx/doc/1 -d '{
"first_name": "Sebastien",
"last_name": "Lorber"
}'
echo
curl -XPOST localhost:9200/test-idx/_refresh
echo
curl "localhost:9200/test-idx/doc/_search?q=name:Sebastien"
echo
curl "localhost:9200/test-idx/doc/_search?q=name:Lorber"