Главная Обратная связь

Дисциплины:






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



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

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

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

 

“<префикс><термин>$”/(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)

 





sdamzavas.net - 2017 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...