Проблемы с сортировкой по полю после обновления в ElasticSearch ⇐ Php
Проблемы с сортировкой по полю после обновления в ElasticSearch
Каждую ночь я вставляю свои данные в elasticsearch, используя PHP с массовой вставкой. В течение дня, когда пользователи обновляют информацию, я обновляю каждый результат индивидуально, но после обновления появляется проблема. Результаты, которые были обновлены позже, не сортируются одинаково с остальными, но отображаются после этого.
У меня есть поле «цена» типа «двойной». Когда я создаю массив для массовой вставки, я специально говорю, что тип цены будет двойным:
$result['price'] = (double) $result['price'];
Результаты попадают в мой индекс эластичности, и все в порядке. Сортировка по цене работает отлично. Проблема после обновления. Я не использую массовое обновление и обновляюсь по одному:
$this->getClient()->update($params);
Опять я анализирую поле как «double», прежде чем отправить его в эластичный файл, но здесь возникает проблема. При сортировке по цене вся информация, которая была обновлена позже, идет после всех результатов.
Например. Мои исходные данные были:
элемент1 | 10$ элемент2 | 11$ элемент3 | 15$ элемент4 | 25$ элемент5 | 30$ элемент6 | 40$
После обновления item1 и item4 будет:
пункт2 | 11$ элемент3 | 15$ элемент5 | 30$ элемент6 | 40$ элемент1 | 10$ элемент4 | 25$
Я думаю, что elastic делает что-то другое во время массовой вставки и в единственном числе.
Каждую ночь я вставляю свои данные в elasticsearch, используя PHP с массовой вставкой. В течение дня, когда пользователи обновляют информацию, я обновляю каждый результат индивидуально, но после обновления появляется проблема. Результаты, которые были обновлены позже, не сортируются одинаково с остальными, но отображаются после этого.
У меня есть поле «цена» типа «двойной». Когда я создаю массив для массовой вставки, я специально говорю, что тип цены будет двойным:
$result['price'] = (double) $result['price'];
Результаты попадают в мой индекс эластичности, и все в порядке. Сортировка по цене работает отлично. Проблема после обновления. Я не использую массовое обновление и обновляюсь по одному:
$this->getClient()->update($params);
Опять я анализирую поле как «double», прежде чем отправить его в эластичный файл, но здесь возникает проблема. При сортировке по цене вся информация, которая была обновлена позже, идет после всех результатов.
Например. Мои исходные данные были:
элемент1 | 10$ элемент2 | 11$ элемент3 | 15$ элемент4 | 25$ элемент5 | 30$ элемент6 | 40$
После обновления item1 и item4 будет:
пункт2 | 11$ элемент3 | 15$ элемент5 | 30$ элемент6 | 40$ элемент1 | 10$ элемент4 | 25$
Я думаю, что elastic делает что-то другое во время массовой вставки и в единственном числе.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сортировка Elasticsearch по полю в параметре «Лучшие попадания»
Anonymous » » в форуме Elasticsearch aggregation - 0 Ответы
- 830 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Сортировка сегментов агрегации elasticsearch по текстовому полю
Anonymous » » в форуме Elasticsearch aggregation - 0 Ответы
- 999 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Вложенные агрегаты Elasticsearch с данными Spring elasticsearch 5.2
Anonymous » » в форуме Elasticsearch aggregation - 0 Ответы
- 1134 Просмотры
-
Последнее сообщение Anonymous
-