Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Общие вопросы Ирбис64 :  ИРБИС Irbis
 
Еще раз о ПОСЛЕДОВАТЕЛЬНОМ ПОИСКЕ
Пользователь: Alio (IP-адрес скрыт)
Дата: 01, February, 2008 12:26

Хочу еще раз обратить внимание пользователей на режим ПОСЛЕДОВАТЕЛЬНЫЙ ПОИСК - особенно в ИРБИС64!
Последовательный поиск предназначен для РАЗОВЫХ поисков, когда нельзя применить поиск по словарям. Если надобность в подобном поиске носит регулярный характер (хотя бы и раз в месяц), его надо сделать прямым, т.е. с помощью словаря. Любой последовательный поиск может быть реализован через поиск по словарю.
В ИРБИС64 применение последовательного поиска чревато следующими неприятными последствиями:
- если в результате последовательного поиска найдено документов больше, чем одна порция обмена (MAXBRIEFPORTION*7), листание такого результата становится делом, мягко говоря, не очень приятным (поскольку при переходе к очередной порции просмотра последовательный поиск проводится ЗАНОВО на сервере)
- если осуществляется корректировка документов, найденных последовательным поиском, то сохранение откорректированного документа оказывается ОЧЕНЬ медленным (потому что при каждом сохранении последовательный поиск на сервере повторяется ЗАНОВО). В этой ситуации можно порекомендовать поступать следующим образом: переходить на закладку НОВЫЙ/MFN и вызывать на корректуру нужный документ по его номеру (MFN)

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

Пример (с которым столкнулся в одной из библиотек): с целью отыскания в БД RDR записей с ЛИШНИМИ ПРОБЕЛАМИ пользователи регулярно проводили соответствующие последовательные поиски и затем корректировку найденных документов. Т.к. БД RDR имела значительный объем, работа эта превращалась (в силу описанного выше) в настоящее мучение. Не обсуждая, насколько разумны вообще эти действия (поиск документов с лишними пробелами), можно предложить следующее решение.
Создается новый поиск по словарю в БД RDR "Наличие лишних пробелов". Для этого:
- добавляется новая строка в RDR.FST
1 0 if &uf('+0') : ' ' then 'XX=есть' fi /*здесь между кавычками три пробела
- в RDR.INI в раздел [SEARCH] добавляется новый поиск для словаря с префиксом XX=

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



Редактировано 2 раз. Последний раз 01.02.2008 12:29 пользователем Alio.

Re: Еще раз о ПОСЛЕДОВАТЕЛЬНОМ ПОИСКЕ
Пользователь: Карауш (IP-адрес скрыт)
Дата: 03, February, 2008 11:15

Александр Иосифович!
Мне нужно часто делать НЕСТАНДАРТНЫЕ прямые запросы на БД в ИРБИС64, т.к. ИРБИС32 такие объемы не возьмет.
Что делать? Хочу быстро и качественно редактировать определнным образом найденные записи. Почему нельзя использовать историю поиска, как это было сделано во временном файле *.int для глобальной корректировки в ИРБИС32? Зачем нужно для каждой новой порции делать новый последоват. поиск?
Есть ли ограничение на объем памяти для порции обмена (MAXBRIEFPORTION*7)? У меня база 4 млн. записей (mst ~ 5Gb).

Re: Еще раз о ПОСЛЕДОВАТЕЛЬНОМ ПОИСКЕ
Пользователь: Alio (IP-адрес скрыт)
Дата: 04, February, 2008 10:21

Карауш написал(а):
-------------------------------------------------------
> Александр Иосифович!
> Мне нужно часто делать НЕСТАНДАРТНЫЕ прямые
> запросы на БД в ИРБИС64, т.к. ИРБИС32 такие объемы
> не возьмет.
Не понял - прямые или последовательные? И какие ограничения на поиск Вы обнаружили в ИРБИС32

> Что делать? Хочу быстро и качественно
> редактировать определнным образом найденные
> записи. Почему нельзя использовать историю поиска,
> как это было сделано во временном файле *.int для
> глобальной корректировки в ИРБИС32? Зачем нужно
> для каждой новой порции делать новый последоват.
> поиск?
Если используется глобальная корректировка, то тех эффектов, о которых я писал, нет - там поиск НЕ повторяется при корректировке...


> Есть ли ограничение на объем памяти для порции
> обмена (MAXBRIEFPORTION*7)? У меня база 4 млн.
> записей (mst ~ 5Gb).

Re: Еще раз о ПОСЛЕДОВАТЕЛЬНОМ ПОИСКЕ
Пользователь: Карауш (IP-адрес скрыт)
Дата: 04, February, 2008 20:50

> Не понял - прямые или последовательные? И какие ограничения на поиск Вы обнаружили в ИРБИС32

Прямые - с использованием языка форматирования. А делаются они только последовательным поиском. В ИРБИС32 ограничений при последовательном поиске нет. В ИРБИС32 есть ограничения по объему базы.

> Если используется глобальная корректировка, то тех эффектов, о которых я писал, нет - там поиск НЕ повторяется при корректировке...

Это если я сразу результат поиска отправил на "глобальную корректировку"?
А если я уточняю последовательный поиск последовательным поиском. Он же "зараза" опять пойдет по всей базе искать, а не в порции найденных в первый раз записей. Или я что-то недопонимаю?



Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.