Шаг 9: Поиск с использованием функций
Функции используются для выполнения более специфических типов поиска слов с дополнительными ограничениями. Например, вместо того чтобы просто искать записи с двумя словами, используя операторы AND и OR, с помощью функции вы можете найти запись, в которой два слова находятся на расстоянии 3 слов друг от друга, либо в одном и том же предложении, либо следуют друг за другом в указанном порядке. Функции представляют собой более сложные элементы поискового синтаксиса. Они позволяют конкретизировать поисковые запросы и получать оптимальный результат.
Функция состоит из следующей цепочки элементов: наименование функции, открывающая круглая скобка, далее - слово или слова, являющиеся объектом функции и, наконец, закрывающая скобка. Например: функция (слово ). Перед открывающейся скобкой, между открывающейся или закрывающейся скобками и словом/словами может быть использовано любое количество пробелов.
Большинство функций, подобно отдельным словам, могут использоваться в сочетании с операторами. Например: функция(слово) AND функция (слово). Или: функция (слово) OR функция (слово).
Некоторые функции работают с несколькими словами. Каждое слово или элемент, который становится объектом функции и располагается между скобками, называется аргументом. Одни функции принимают 1 аргумент, другие - 2, а третьи могут использоваться с любым количеством аргументов. Аргументы разделяются запятыми; между аргументами и запятыми допускается использование пробелов. Например: функция(слово1, слово2). Здесь мы используем функцию с двумя словами, разделенными запятой.
Поиск с функцией "near"
Функция near используется для выполнения поисковых запросов, которые ограничивают расстояние между словами. Функция near требует наличия как минимум 3 аргументов: максимально допустимое расстояние между первым и вторым словом, первое слово и второе слово. Расстояние измеряется количеством промежуточных слов и указывается в виде цифры. Например: near (1, слово1, слово2). Или near (2, слово1, слово2). Цифра 2 означает, что для того, чтобы запись соответствовала запросу, слово 1 и слово 2 должны присутствовать и появляться как минимум один раз на расстоянии в 2 слова друг от друга. Эти слова могут встречаться в записи и по отдельности, на большом расстоянии друг от друга, поэтому требование таково, что как минимум один раз они должны быть в пределах указанного расстояния друг от друга. Если слова находятся на расстоянии менее 2 слов друг от друга, например, следуют друг за другом, или между ними стоит какое-то другое слово, запись все равно будет отвечать условию поиска, поскольку указанное в функции значение является лишь максимальным порогом, а не точным расстоянием.
Мы можем использовать функцию near для ограничения количества записей, соответствующих запросу. Предыдущий запрос gun and school выявил 9 записей. Теперь попробуйте использовать следующий поисковый запрос: near (2, gun, school). В этом случае будет найдена только 1 запись, поскольку она является единственной записью, в которой слова gun и school находятся в пределах 2 слов друг от друга.
Использование функции PHRASE
Функция phrase является более специфической по сравнению с функцией near. Она выполняет поиск двух слов, которые встречаются непосредственно друг за другом (последовательно), в заданном порядке, и только в пределах одного и того же предложения. Функция phrase имеет следующий синтаксис: phrase (слово1, слово2). Для того, чтобы запись отвечала условиям поиска, слово2 должно появиться как минимум один раз сразу за словом1, в одном и том же предложении, без каких-либо промежуточных слов.
Попробуйте выполнить следующий поисковый запрос: rabid and dog. Будут найдены 3 записи, в которых упоминаются и слово rabid, и слово dog. В первой записи встречается rabid raccoon, в третьей - rabid skunk. И только вторая запись содержит искомую фразу rabid dog. Это как раз тот случай, когда очень полезно было бы использовать функцию phrase. Теперь попробуйте выполнить запрос phrase (rabid, dog). В этом случае только одна из трех записей отвечает условиям поиска, поскольку это единственная запись, в которой содержится точная фраза. Это упрощенный пример, поскольку мы имеем дело только с 3 записями; однако данная функция очень полезна при работе с тысячами записей, из которых она позволяет выбрать наиболее релевантные записи.
Кроме функций near и phrase в PDL существует огромное количество других функций, например, поиск слов в пределах одного и того же предложения или абзаца, или поиск омофонов, или поиск слова и всех его синонимов (в тезаурусе). Более подробная информация представлена в разделе Справочник PDL.
Для того, чтобы лучше понять принцип действия узла Поисковый запрос и научиться его использовать, можно попробовать составить разные типы поисковых запросов. Используйте справочник PDL и другие доступные инструменты для написания более сложных поисковых запросов. Подумайте сами, что может представлять интерес в таблице данных о преступлениях, либо используйте другую таблицу. Если бы вы работали в полицейском отделении и пытались составить общую картину совершаемых в регионе преступлений, какие типы запросов вас бы интересовали? Вы также можете использовать узел Таксономия для распределения отчетов по категориям. Узел использует тот же поисковый синтаксис. Вы можете также использовать любые узлы текстового анализа.
Не забудьте сохранить свой проект, чтобы использовать его при необходимости в качестве источника справочной информации.