Задать вопрос
@loly

Как изменить «primary key» в Elasticsearch (т.е. вместо _id использовать другое поле)?

Есть необходимость заменять уже существующие элементы новыми, примерно по 10 раз в секунду. Естественно, можно сначала выполнять поиск и удалять уже существующие, а затем добавлять новые, однако это кажется далеко не лучшим решением (по тому что я студент и какого то особо мощного железа нет).

"Primary key" или просто уникальное поле имеет тип строки ("string") и представляет собой некую уникальную последовательность (что то вроде hash'а), которая принадлежит строго определенному объекту.

Да, я находил вот это
"_id" : {
	"path" : "id"
}

но оно depricated начиная с 1.5 версии, у меня 2.2.
  • Вопрос задан
  • 564 просмотра
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
MintTea
@MintTea
Я не смог понять, почему замена поля _id на что-то другое решит вашу проблему.

Во-первых, _id может быть определен клиентом. Подробнее: тыц.
Если вам не нравятся id, генерируемые эластиком, просто передавайте свои при создании документа.

Во-первых, ES поддерживает группировку операций в одном запросе, если проблема в производительности:
https://www.elastic.co/guide/en/elasticsearch/refe...

Пример создания документа с предопределенным id (в данном случае - 12345):

curl -XPUT 0.0.0.0:9200/index_name/type_name/12345/ -d '{
    "hey": "there"
}'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы