intersect
Назначение
Находит документы, содержащие употребления первого аргумента, которые пересекаются с употреблениями второго аргумента.
Аргументы
Функция принимает два обязательных аргумента. Функция также поддерживает опциональный именованный параметр match, который принимает следующие значения:
Значение |
Пояснение |
first |
первый аргумент целиком (значение по умолчанию) |
second |
второй аргумент целиком |
intersection |
пересечение аргументов |
union |
объединение аргументов |
difference |
симметрическая разность (все элементы первого и второго множества, кроме пересекающихся элементов) |
difference_left |
разность первый/второй |
difference_right |
разность второй/первый |
Кроме того, функция поддерживает опциональный именованный параметр diff, который задает ограничение на различие аргументов (в количестве слов). Т.е. diff — это разница между количеством всех подкрашенных слов у пересекающихся аргументов и количеством общих для них слов. Можно указать два параметра diff определяющих верхнюю и нижнюю границу разницы аргументов.
Чтобы ограничить запрос, можно использовать операторы :=, :>, :>=, :<, :<=.
Примечание
-
Если позиции второго аргумента пересекаются с первым аргументом, то они объединяются. Например, intersect("a b b", "b", match:=intersection) находит «b b» во фразе «a b b» как одно вхождение.
-
Функция синонимична оператору &, но у последнего есть два алгоритма работы. Когда пересекаются сложные аргументы, например функции и переменные, оператор & рассматривает позиции аргументов. А в случае с простыми словами и фразами в кавычках оператор & рассматривает множества. Тогда пересечением считается только полное совпадение аргументов. Пересечение множеств выполняется быстрее, чем пересечение позиций, его удобно использовать при работе со словарями или списками слов.