Выполнение объединений по индексам в системах хранения плоских файлов - PullRequest
0 голосов
/ 21 мая 2019

Чтобы вычислить метрики, эквивалентные приведенному ниже SQL-запросу в Elasticsearch или любых других подобных системах хранения плоских файлов.

SELECT COUNT(DISTINCT required_column_name)
FROM table_1 A
INNER JOIN table_1 B ON A.matching_column_name = B.matching_column_name
WHERE A.distinguishing_column_name = 'distinguishing_value_A'
  AND B.distinguishing_column_name = 'distinguishing_value_B';

Ссылка - http://www.sqlservertutorial.net/sql-server-basics/sql-server-self-join/.

Я быхотелось бы знать, существует ли такая возможность для присоединения индексов в Elasticsearch.После чего я хотел бы рассчитать пропорцию соответствующего столбца между двумя классами.Например, 30 процентов элементов являются общими для класса A и класса B.

Сценарий: Давайте рассмотрим, есть ли y документов в индексе, который имеет только два поля в каждом из них.,Если общее количество уникальных значений первого и второго полей равно m и n, то может быть m * n уникальных комбинаций.Первое поле имеет одно из значений из ("Class_1", "Class_2", "Class_3").Второе поле имеет значения, которые являются своего рода идентификаторами буквенно-цифровых значений, и это значение может повторяться (например, рассмотрим зашифрованный идентификатор электронной почты).Я хотел бы знать общие идентификаторы между Class_1 и Class_2, Class_1 и Class_3, Class_2 и Class_3 и среди всех трех вместе взятых.

Нумерованные области на этом изображении - это ожидаемый результат

В документации и Elasticsearch forum упоминается, что нет никаких вариантов для присоединений.Действительно, мы можем связать Elasticsearch с мощными платформами, такими как Python, Java и т. Д., Используя API и выполнять необходимые операции в среде программирования.Поскольку он неэффективен с точки зрения производительности и не использует в полной мере Map Reduce, существует ли способ обойти это требование в самой среде Storage.

...