Запрос Elasticsearch DSL на обновление

Я понимаю, что могу обновить конкретный документ с помощью http: // localhost: 9200 / [имя_индекса] / [тип_индекса] / [_id], но у меня есть документ, в котором _id содержит # символов, которые Sense не может их найти.

Поймите, что Query DSL сможет выполнять поиск, где я могу указать _id, которого нет в URL-адресе. Ресурс: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-ids-query.html

Могу я уточнить у вас, как я могу сделать то же самое для обновления документа?

0
0
571
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Используйте localhost: 9200 / index / type / ID% 23,% 23 для #

Итак, если _id равно 10, URL-адрес будет выглядеть как localhost: 9200 / index / type / 10% 23

Могут быть и другие специальные символы, которые могут вводить пользователи, поэтому я хотел бы спросить, есть ли какое-либо обходное решение вместо использования _id в URL-адресе. Спасибо за ответ.

xxestter 12.08.2018 10:25
Ответ принят как подходящий

Если вы не хотите помещать идентификатор в URL-адрес, единственный вариант, который у вас есть, - использовать обновление по запросу API, например:

POST index/_update_by_query
{
  "query": {
    "ids": {
      "values": ["2323#23423"]
    }
  },
  "script": {
    "source": "do some update here"
  }
}

Спасибо за ответ. Я использую Elasticsearch версии 1.3.3 и думаю, что в этой версии нет update_by_query. Я использовал "index / _update_by_query", и он выдает ошибку: "InvalidTypeNameException [имя типа сопоставления [_update_by_query] не может начинаться с" '] ", статус 400.

xxestter 12.08.2018 10:23

В этом случае вы можете использовать обновление по запросу 2.2.0 плагин, который работал для ES 1.3.3.

Val 12.08.2018 11:14

Спасибо за ответ. _Update_by_query не сможет создать новый документ, если 2323 # 23423 отсутствует в индексе. Могу я спросить, а как насчет создания нового документа?

xxestter 13.08.2018 13:54

В вашем вопросе ничего не говорится о создании документа, если он отсутствует.

Val 13.08.2018 14:03

Нет, мне с этим не везет. Я создам новый вопрос по поводу создания документа. Спасибо за совет.

xxestter 14.08.2018 07:26

Другие вопросы по теме