Я знаю, что мы можем установить схему для полей, которые еще не вошли, когда мы создаем индекс. Однако возможно ли установить схему по умолчанию для неизвестных полей, которые могут входить в данный индекс.
Пример использования: у меня есть таблица DynamoDB, содержимое которой проиндексировано в экземпляре AWS Elastic Search. Таблица DynamoDB содержит идентификаторы, которые не следует индексировать как текст и которые могут получить новый идентификатор, который ранее не был указан в схеме эластичного поиска.
Проблема в том, что если в элементе DynamoDB задано новое поле String, оно будет проиндексировано в Elastic Search по умолчанию следующим образом:
{
"mappings": {
"metadata": {
"properties": {
"my_new_field": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
}
}
}
}
}
Хотя я хочу, чтобы новое сопоставление полей по умолчанию было
{
"mappings": {
"metadata": {
"properties": {
"my_new_field": {
"type": "keyword"
}
}
}
}
}
1 ответ
Вы можете использовать новое определение динамического сопоставления, специфичное для определенных индексов или типов документов, которые вы ожидаете получить. посмотрите [здесь] [1]: https: //www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html
Похожие вопросы
Новые вопросы
amazon-web-services
Amazon Web Services (AWS) - это общедоступное облако: IaaS (инфраструктура как услуга) и SaaS (программное обеспечение как услуга), предоставляемые Amazon. Вопросы по программированию и архитектуре находятся по теме. Общую справку по серверу можно получить по адресу https://serverfault.com. Тег AWS редко используется отдельно и обычно используется вместе с другими тегами, чтобы более четко определить тему вопроса.