У меня есть 20 000 000 позиций в Elasticsearch, которые я счастливо ищу (он работает потрясающе хорошо).Elasticsearch - эквивалент LEFT JOIN
Существует дополнительный аспект, хотя я не знаю, как решить:
Пользователь может «купить» эти предметы (в партиях от 1000 до 100000), и мне нужен мой поиск, чтобы вернуть только элементы что они еще не «купили». Я бы решил это с помощью LEFT JOIN в SQL.
Я мог бы добавить к каждому элементу поля buyBy [], но тогда мне нужно будет обновлять множество документов каждый раз, когда пользователь покупает. Чувствует себя неправильно?
И как 'они ранее не«купили»' определен в кластере? –
«купленный» еще не определен - это своего рода вопрос, но по существу это всего лишь набор идентификаторов. buyBy [] может быть набором идентификаторов пользователей. – Kong