Чтобы вычислить метрики, эквивалентные приведенному ниже 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.