Построитель запросов
Класс Search
представляет собой построитель запросов в синтаксисе прямого поиска ИРБИС64. В нём имеются следующие статические методы:
def all() -> Search – отбор всех документов в базе. Фактически строит запрос
I=$
.def equals(prefix, *values) -> Search – поиск по совпадению с одним из перечисленных значений. Возвращает построитель запросов для последующих цепочечных вызовов.
Экземплярные методы:
def and_(self, *items) -> Search – логическое И. Возвращает построитель запросов для последующих цепочечных вызовов.
def not_(self, text) -> Search – логическое НЕ. Возвращает построитель запросов для последующих цепочечных вызовов.
def or_(self, *items) -> Search – логическое ИЛИ. Возвращает построитель запросов для последующих цепочечных вызовов.
def same_field_(self, *items) -> Search – логический оператор «в том же поле». Возвращает построитель запросов для последующих цепочечных вызовов.
def same_repeat_(self, *items) -> Search – логический оператор «в том же повторении поля». Возвращает построитель запросов для последующих цепочечных вызовов.
Кроме того, предоставляются следующие функции, значительно упрощающие формирование запроса:
Функция |
Поиск по |
---|---|
author |
автору |
bbk |
индексу ББК |
document_kind |
виду документа |
keyword |
ключевым словам |
language |
языку текста |
magazine |
заглавию журнала |
mhr |
месту хранения |
number |
инвентарному номеру |
place |
месту издания (городу) |
publisher |
издательству |
rzn |
разделу знаний |
subject |
предметной рубрике |
title |
заглавию |
udc |
индексу УДК |
year |
году издания |
Пример применения построителя запросов:
import irbis
from irbis.builder import author, title
client = irbis.Connection()
client.connect('host', 6666, 'librarian', 'secret')
expression = author('ПУШКИН$').and_(title('СКАЗКИ$'))
found = client.search_count(expression)
print(f"Найдено: {found}")
client.disconnect()