#elasticsearch
#elasticsearch
Вопрос:
Я сталкиваюсь со следующей фразой, и у меня создается впечатление, что действительный запрос 6.x с типом может выдать ошибку. Я использую cluster ES 7.10
Обратите внимание, что в версии 7.0 _doc является постоянной частью пути и представляет имя конечной точки, а не тип документа.
Но, к моему удивлению, я могу выполнить следующий запрос. Означает ли это, что _doc НЕ является постоянной частью пути? В частности, какие запросы мне нужно изменить, когда я перехожу с 6.x на 7.x
PUT ecommercesite/product/1
{
"product_name": "Men High Performance Fleece Jacket",
"description": "Best Value. All season fleece jacket",
"unit_price": 79.99,
"reviews": 250,
"release_date": "2016-08-16"
}
И только запрос 6.x, я не могу запустить на 7.10. Я получил ошибку в отношении типа.
GET ecommercesite/product/_mapping
Ответ №1:
PUT
Запросы в настоящее время (конец 2020 года) просто выдают предупреждение, но завершатся ошибкой в 8.x.
На данный момент вы можете начать замену product
на _doc
:
PUT ecommercesite/product/1
—>PUT ecommercesite/_doc/1
GET ecommercesite/product/_mapping
—>GET ecommercesite/_doc/_mapping?include_type_name
но было бы лучше полностью отказаться от типов и придерживаться стандартов:
- важно: вместо
PUT ecommercesite/1
того, чтобы продолжать использоватьPUT ecommercesite/_doc/1
или использоватьPUT /ecommercesite/_create/1
(документы здесь) GET ecommercesite/_mapping
(документы здесь)- никаких существенных изменений в
GET ecommercesite/_search
Комментарии:
1. понял. Я могу запускать запросы без _doc, однако я понял, что вы должны использовать _doc как можно больше для планирования 8.x.
2. Однако одна точка, которая противоречила — _doc, НЕ кажется постоянной частью пути
3. Да, мне тоже трудно понять, что это значит…
4.
permanent
просто означает, что_doc
это больше не представляет имя типа, это всего лишь одна (все еще необязательная) часть пути URL (например_search
, или_mapping
)