Прямой поиск

Navigation:  ПРИЛОЖЕНИЯ > 17. Язык запросов >

Прямой поиск

Previous pageReturn to chapter overviewNext page

Язык прямого поиска.

 

 Внимание:

Запрос для прямого поиска представляет собой алгебраическое (поисковое) выражение, в котором операндами являются термины словаря, а операторами – логические операторы булевой алгебры. Для изменения порядка выполнения логических операторов в поисковом выражении могут применяться скобки.

 

Термин словаря включает в себя собственно термин словаря и префикс, если таковой используется для данного вида терминов.

 

Операнд поискового выражения

В общем виде операнд поискового выражения можно представить следующим образом:

 

 “<префикс><термин>$”/(tag1,tag2,…tagN)

 

где:

<префикс> - префикс, определяющий вид термина (вид словаря);

<термин> - собственно термин словаря;

$ - признак правого усечения термина; определяет совокупность терминов, имеющих начальную последовательность символов, совпадающую с указанным термином; может отсутствовать – в этом случае поиск идет по точному значению указанного термина.

– символ-ограничитель термина (двойные кавычки); должен использоваться обязательно, если термин включает в себя символы пробел, круглые скобки, решетка (#), а также символы, совпадающие с обозначениями логических операторов (см.. ниже);

/(tag1,tag2,…tagN) – конструкция квалификации термина; определяет метки поля, в которых должен находиться указанный термин, или точнее – вторую часть ссылки термина (Приложение  5. ТАБЛИЦЫ ВЫБОРА ПОЛЕЙ (ТВП)); может отсутствовать – что означает отсутствие дополнительных требований в части меток полей.

 

Логические операторы

В поисковом выражении могут использоваться следующие логические операторы:

+ - оператор логического ИЛИ; соединение двух операндов (терминов) логическим оператором ИЛИ обозначает требование поиска записей, в которых присутствует хотя бы один из терминов;

* - оператор логического И; соединение двух терминов логическим оператором И обозначает требование поиска записей, в которых присутствуют оба термина;

^ - оператор логического НЕ; соединение двух терминов логическим оператором НЕ обозначает требование поиска записей, в которых присутствует первый термин и отсутствует второй; оператор НЕ не может быть одноместным (т.е. данному оператору, как и все м другим, должен ОБЯЗАТЕЛЬНО предшествовать термин);

(G)первый оператор контекстного И; соединение двух терминов таким оператором контекстного И обозначает требование поиска записей, в которых оба термина присутствуют в одном и том же поле (или точнее – когда у терминов совпадают вторые части ссылок);

(F)второй оператор контекстного И; соединение двух терминов таким оператором контекстного И обозначает требование поиска записей, в которых оба термина присутствуют в одном и том же повторении поля (или точнее – когда у терминов совпадают вторые и третьи части ссылок);

. – (точка обрамленная пробелами) третий оператор контекстного И; соединение двух терминов таким оператором контекстного И обозначает требование поиска записей, в которых оба термина присутствуют в одном и том же повторении поля друг за другом (или точнее – когда у терминов совпадают вторые и третьи части ссылок, а третьи части ссылок отличаются на единицу);

 

Правило:

Правило:

Логические операторы имеют приоритеты, которые определяют порядок их выполнения (в пределах одного уровня скобок). Ниже операторы приведены в порядке убывания приоритета:

.

(F)

(G)

* и ^

+

Операторы одного приоритета выполняются слева направо (в пределах одного уровня скобок).

Для изменения порядка выполнения логических операторов в поисковом выражении могут применяться круглые скобки.

Выражения в скобках могут объединяться только операторами + * ^.

 

Пример:

Примеры запросов для прямого поиска:

 

(“A=Иванов$” +”A=Петров$”) * (“V=03” + “V=05”)

 

“K=трактор$” (F) “K=колесн$” + “K=бульдозер$” (F) “K=гусен$”

 

“K=очист$”/(200,922) * “K=вод$”/(200,922)