Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Web Ирбис и Z-Ирбис :  ИРБИС Irbis
 
Страницы: 12>>
Страница: 1 из 2
Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 18, April, 2011 16:24

Кирилл, в Веб-Ирбис 32 раньше была возможность из Расширенного поиска перейти к словарю, а потом вернуться в него с отобранными по словарю терминами. В Ирбис 64 такая возможность отсутствует, а этой опции очень не хватает. Причем в Веб-Ирбис 32 была возможность работать только с одним словарем и его значениями. Если после выбора значений и возврата в форму Расширенного поиска выбрать опять переход к словарю, то все отобранные термины терялись. В библиотеке, в которой я сейчас внедряю программу в старом поисковике была возможность возле каждого поля ввода термина выбрать из словаря значение. Фото прилагаю. Пытаюсь прикрутить аналогичные кнопки в Веб-Ирбисе 64. Но не очень-то получается. На данный момент я изменил форму поиска по словарю, добавив в нее внизу поле "Отобранные термины" и кнопку "Вернуться". Если в поле ручками ввести термин и нажать кнопку "Вернуться", происходит переход к Расширенному режиму с вводом терминов в нужное поле. Но я не могу понять как мне отбирвать термины в это поле по нажатию кнопки, а не ручным вписыванием. И не могу придумать переход от расширенного режима к поиску по словарю так, что бы сохранялись данные, уже внесенные в поисковые поля. Можешь подсказать что-то по этой идеи?



Редактировано 1 раз. Последний раз 19.04.2011 01:29 пользователем Кирилл Соколинский (СЗТУ).

Вложения: search_1.gif (11.8KB)   search_2.gif (81.6KB)   search_3.gif (117.4KB)  
Re: Расширенный поиск
Пользователь: Gena (IP-адрес скрыт)
Дата: 18, April, 2011 16:26

еще фото

Вложения: search_4.gif (133KB)   search_Web_Irbis_1.gif (85.2KB)   search_Web_Irbis_2.gif (102KB)  
Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 19, April, 2011 02:09

При наличии автодополнения режим работы со словарём вообще теряет свой смысл. Я оставил его только для совместимости. Кроме того, острую необходимость отбора нескольких терминов можно представить только при поиске по ключевым словам.

Тем не менее, если начальство требует…

Могу предложить достаточно адекватный для WEB ИРБИС вариант со всплывающими окнами, который работает в J-ИРБИС 1. [library.pgups.ru]

Здесь по мере выбора терминов в основной форме генерируется запрос. Термины, отобранные из одного словаря, объединяются оператором ИЛИ, из разных — И. Скрипт прилагаю. Смотри функции OpenDic и addsearch



Редактировано 1 раз. Последний раз 19.04.2011 02:11 пользователем Кирилл Соколинский (СЗТУ).

Вложения: Common.js (22.5KB)  
Re: Расширение возможностей поиска по словарю
Пользователь: Денисова Лариса (IP-адрес скрыт)
Дата: 19, April, 2011 09:26

Gena написал(а):
-------------------------------------------------------
> Кирилл, в Веб-Ирбис 32 раньше была возможность из
> Расширенного поиска перейти к словарю, а потом
> вернуться в него с отобранными по словарю
> терминами. В Ирбис 64 такая возможность
> отсутствует, а этой опции очень не хватает. Причем
> в Веб-Ирбис 32 была возможность работать только с
> одним словарем и его значениями. Если после выбора
> значений и возврата в форму Расширенного поиска
> выбрать опять переход к словарю, то все отобранные
> термины терялись. В библиотеке, в которой я сейчас
> внедряю программу в старом поисковике была
> возможность возле каждого поля ввода термина
> выбрать из словаря значение. Фото прилагаю.
> Пытаюсь прикрутить аналогичные кнопки в Веб-Ирбисе
> 64. Но не очень-то получается. На данный момент я
> изменил форму поиска по словарю, добавив в нее
> внизу поле "Отобранные термины" и кнопку
> "Вернуться". Если в поле ручками ввести термин и
> нажать кнопку "Вернуться", происходит переход к
> Расширенному режиму с вводом терминов в нужное
> поле. Но я не могу понять как мне отбирвать
> термины в это поле по нажатию кнопки, а не ручным
> вписыванием. И не могу придумать переход от
> расширенного режима к поиску по словарю так, что
> бы сохранялись данные, уже внесенные в поисковые
> поля. Можешь подсказать что-то по этой иде

Мы реализовали эту возможность для ИРБИС64 версии 2009.1 собственными силами.
Посмотрите...http://library.sgu.ru/cgi-bin/irbis64r_91/cgiirbis_64.exe?C21COM=F&I21DBN=NIKA_PROF&P21DBN=NIKA&S21CNR=&Z21ID=

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 19, April, 2011 15:09

Денисова Лариса написал(а):
-------------------------------------------------------
>
> Мы реализовали эту возможность для ИРБИС64 версии
> 2009.1 собственными силами.
> Посмотрите...[library.sgu.ru]
> r_91/cgiirbis_64.exe?C21COM=F&I21DBN=NIKA_PROF&P21
> DBN=NIKA&S21CNR=&Z21ID=


О! Это именно то, что я сейчас пытаюсь сделать. Не могли бы вы поделиться вашими наработками? Или хотя бы подсказать идею... Буду премного благодарен!

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 19, April, 2011 17:19

Огромное спасибо!!! Я по аналогии с вашим сайтомм все сделал. Вы меня очень выручили

Re: Расширение возможностей поиска по словарю
Пользователь: Денисова Лариса (IP-адрес скрыт)
Дата: 20, April, 2011 11:18

Извините, что не успела отправить вам готовые файлы.

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 20, April, 2011 12:35

Честно говоря, я вам очень благодарен и за то, что вы показали готовый вариант. Я почти закончил, но у меня есть некоторые "моментики", которые портят общую картину. В моем варианте почему-то пропала кирилица и не срабатывает передача в Internet Explorer, хотя в Опере все работает на ура. Так что я буду боле чем признателен, если вы все таки поделитесь своим вариантом. eye rolling smiley

Re: Расширение возможностей поиска по словарю
Пользователь: Денисова Лариса (IP-адрес скрыт)
Дата: 21, April, 2011 09:29

Ответила в личку. А кириллица может пропасть из-за того, что где-то перед FORMAT нет "!", если я не ошибаюсь.

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 26, April, 2011 11:30

Еще раз большое вам спасибо! Ваши наработки меня очень выручили.

Re: Расширение возможностей поиска по словарю
Пользователь: Денисова Лариса (IP-адрес скрыт)
Дата: 26, April, 2011 11:47

Всегда рады помочь чем можем.

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 31, May, 2011 10:44

Новый вопрос по этой теме. До этого я настраивал описанные выше поиски на версии 2009.1 Сейчас решил перейти на версию 2010.1 Но возникла маленькая проблемка. Мне очень понравилос автозаполнение в новой версии, но я не могу его перенести на тот поиск, который описан мной в этой теме выше. Автодополнение вызывается с помощью id="A_S21STR", а у меня получается, что к Инпуту может буть подключено несколько словарей и использовать один какой-то - просто невозможно. Можно ли как-то динамически менять id="A_S21STR" изменяя в нем префикс словаря?

Вот пример Инпута:

<tr>
   <td valign=top>
      <select name="PREFIX5" class="inp1" style="width: 150; ">
         <option selected value="K="> Ключевые слова </option>
         <option value="A="> Автор </option>
         <option value="T="> Заглавие (все заглавия) </option>
	 <option value="M="> Коллективный автор </option>
	 <option value="A2="> Редактор </option>
         <option value="U="> ББК </option>
         <option value="P="> Персоналия </option>
	 <option  value="G="> Год </option>
      </select>
   </td> 
   <td valign=top><input id="A_S21STR" name="S21STR_5" type="text" style="width:400px"></td> 
   <td><input type="button" class="inp1" value="Словарь" onclick='getDictURL("S21STR_5", document.OPAK.PREFIX5.value);'></td>
   <td><div align="Right">Усечение <input type="checkbox" checked="checked" name="S21_CHK_5"></div></td>		
</tr>



Редактировано 2 раз. Последний раз 31.05.2011 10:45 пользователем Gena.

Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 31, May, 2011 11:00

Gena написал(а):
-------------------------------------------------------
> Автодополнение вызывается с помощью
> id="A_S21STR", а у меня получается, что к Инпуту
> может буть подключено несколько словарей и
> использовать один какой-то - просто невозможно.
> Можно ли как-то динамически менять id="A_S21STR"
> изменяя в нем префикс словаря?
>

Смотри решение для X_S21STR в autocomplete.js. Там реализуется точно такой же механизм.

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 31, May, 2011 11:27

Спасибо, Кирилл, как раз что-то аналогичное и думал. Только не могу придумать как динамически запихивать в X_S21P03 префикс словаря. Не мог бы ты подсказать, как саму функцию заставить считывать значение из Select'а в форме?
Нужно считывать из вот этого Selecta

document.mainsearch.PREFIX5.value

	$("#X_S21STR").autocomplete(cgi, {
		multiple: true,			
		cacheLength: 0,		
		matchSubset: false,	
		scrollHeight: 350,
		extraParams: {
			   T21CNR: '10',
			   C21COM: 'T',
			   T21PRF: function() { return $("#X_S21P03").val(); },
			   I21DBN: function() { return $("#P21DBN").val(); }
		}

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 31, May, 2011 11:48

Спасибо за совет! Уже все получилось!

Re: Расширение возможностей поиска по словарю
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 03, September, 2011 23:56

Gena
Расскажите, пожалуйста, поподробнее как вы это реализовали.
Делаю подобное, а опыта в написании скриптов нет.
All
Каким-то образом вроде реализовал. Но иногда возникают проблемы с нажатием на кнопку "Поиск" после ручного ввода терминов.
При выбора термина из словаря, термин вводится в поле запроса как термин плюс в конце запятая и пробел. В результате WI никогда не может найти требуемый документ. Копал так, что выкопался из другого конца.
Подскажите, пожалуйста, в чем может быть проблема.

И чтобы не создавать тему, как осуществить поиск по некоторому элементу бибописания согласно термина. Т. е. если термином будет "автом" (ищем в заглавии). WI должен дать примерно такие результаты
"Автомобиль"
"Автоматика"
"автомойка"



Редактировано 2 раз. Последний раз 04.09.2011 02:04 пользователем woodyfon.

Вложения: extended_search_form.frm (6.6KB)  
Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 05, September, 2011 10:31

woodyfon написал(а):
-------------------------------------------------------

> При выбора термина из словаря, термин вводится в
> поле запроса как термин плюс в конце запятая и
> пробел. В результате WI никогда не может найти
> требуемый документ. Копал так, что выкопался из
> другого конца.

Ключевые слова разбивается на отдельные термины и нормализуется, поэтому запятые ни на что влиять не могут.


> И чтобы не создавать тему, как осуществить поиск
> по некоторому элементу бибописания согласно
> термина. Т. е. если термином будет "автом" (ищем в
> заглавии). WI должен дать примерно такие
> результаты
> "Автомобиль"
> "Автоматика"
> "автомойка"

Именно такие варианты словаря WEB ИРБИС должен решать и в настоящее время. Уточните, какю конкретно задачу Вам требуется решить.

Re: Расширение возможностей поиска по словарю
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 07, September, 2011 23:16

Решил немного усовершенствовать поиск: значения, которые четко определены или должны быть четко определены (например, язык документа, место хранения, коллекция и т .д.) реализовал через выбор соответствующего в списке через select. Но в некоторых случаях разумно сделать значение "Другие". На примере язык документа: основные значениями будут - украинский, русский, английский, испанский, немецкий; дополнительными будут полтский, греческий и др. Как реализовать формирование запроса при выбора значения из списка "Другие", которые включает несколько терминов-значений? Формировать запрос статически? Без применения скриптов возможно реализовать?
P.S. Извините, если задаю такие вопросы, которые возможно изложены в документации. Перед вопросом всегда читаю имеющуюся документацию. Но в этом случае напрочь ничего не вижу. Последняя неделя выдалась какой-то барабашной - что не делаю все либо не так, или ломается smiling bouncing smiley

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 09, September, 2011 10:12

Кирил, а логика НЕ в Веб-Ирбисе как-то реализуется?

Скорее всего без скрипта тут не обойтись. Но скрипт будет простым - он должен проверять поле на префикс, и если там будет префикс "Другие", выдавать значение в виде ("термин" или "термин" или "термин)"

Я в скриптах тоже не селен, но это должно быть что-то на плодобии

if (document.mainsearch.Select_yazik.value = "DRUGIE")
{
document.mainsearch.S21ALL.value = document.mainsearch.S21ALL.value + "(<.>J=pol<.>)+(<.>J=gre<.>)+(<.>J=rum<.>)"

}

как-то так...

Re: Расширение возможностей поиска по словарю
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 09, September, 2011 17:30

Цитата:
Скорее всего без скрипта тут не обойтись.
Уже полностью согласен. Что не делал, без скрипта не обойтись. Придется выучить JSmoody smiley
Предолженный вами скрипт охватывает не все "Другие" языки, а выбранные.
Может сработает: проверить, что выбрано, и если другие, то поменять логику на НЕ + объединенный поисковый запрос основных параметров.
Это пока на словах, попробую реализовать в коде.
+
Не получилось.
Если бы кто-нибудь привел пример, включай скрипт и его применение во фрейме, то надеюсь бы разобрался.



Редактировано 1 раз. Последний раз 09.09.2011 23:05 пользователем woodyfon.

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 13, September, 2011 17:32

Как в воду глядели :) Теперь таже задача поставлена и мне. Будем копать вместе.

Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 13, September, 2011 23:21

woodyfon написал(а):
-------------------------------------------------------
> Решил немного усовершенствовать поиск: значения,
> которые четко определены или должны быть четко
> определены (например, язык документа, место
> хранения, коллекция и т .д.) реализовал через
> выбор соответствующего в списке через select. Но в
> некоторых случаях разумно сделать значение
> "Другие". На примере язык документа: основные
> значениями будут - украинский, русский,
> английский, испанский, немецкий; дополнительными
> будут полтский, греческий и др. Как реализовать
> формирование запроса при выбора значения из списка
> "Другие", которые включает несколько
> терминов-значений? Формировать запрос статически?
> Без применения скриптов возможно реализовать?

Для решения этой задачи целесообразно создать новые термины в словаре. Например, добавьте в <имя базы>.fst строку:

101 0 if 'ru az':v101 then 'J=other' fi,

и добавьте в список дополнительное значение:

<option value="other" >другие языки </option>

Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 13, September, 2011 23:32

Gena написал(а):
-------------------------------------------------------
> а логика НЕ в Веб-Ирбисе как-то
> реализуется?

Реализуется. Это оператор «^» в запросе. См. режим профессионального поиска.

Re: Расширение возможностей поиска по словарю
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 14, September, 2011 13:53

Цитата:
101 0 if 'ru az':v101 then 'J=other' fi,
и добавьте в список дополнительное значение:

<option value="other" >другие языки </option>
Пробовали решить задачу таким путем. Но решение не гибкое: при появлении в ЭК записи с новым языком документа приходится редактировать fst-файлик.
Гибким решением был бы вариант провести поиск по отдельным конкретным языкам с логикой И + результат поиска инвертировать НЕ. Но ведь поиск идет по словарю. Поэтому Ваш вариант будет чуть ли не единственным.

Re: Расширение возможностей поиска по словарю
Пользователь: Gena (IP-адрес скрыт)
Дата: 14, September, 2011 13:59

Добавьте в фст такой вариант:

101 0 if 'ru en ua':v101 then else 'J=other' fi,

Все новые, не вписанные в изначальный поиск, будут улетать в другие

Re: Расширение возможностей поиска по словарю
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 14, September, 2011 15:31

smileys with beer
Точно, оптимальное решение.

Re: Расширение возможностей поиска по словарю
Пользователь: ILV (IP-адрес скрыт)
Дата: 17, November, 2011 15:48

Здравствуйте.
Была задача сделать поиск по нескольким полям (вид поиска можно посмотреть в прикреплённом файле). Проблема в следующем: как сделать для каждого поля усечение?
Т.е. сейчас, посредством чекбокса, в поисковом запросе ставится $, но пользователю по факту самому приходится отсекать окончания.
Возможно ли, когда пользователь, допустим, вбил слово ИСТОРИЯ, поставил чекбокс на усечение, при добавление в поисковый запрос обратиться к функции усекающей слова и записать в запрос уже ИСТОР$, а не ИСТОРИЯ$?



Редактировано 2 раз. Последний раз 17.11.2011 15:53 пользователем ILV.

Вложения: poisk.JPG (22.2KB)  
Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 19, November, 2011 20:33

ILV написал(а):
-------------------------------------------------------
> Возможно ли, когда пользователь, допустим, вбил
> слово ИСТОРИЯ, поставил чекбокс на усечение, при
> добавление в поисковый запрос обратиться к функции
> усекающей слова и записать в запрос уже ИСТОР$, а
> не ИСТОРИЯ$?

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



Редактировано 1 раз. Последний раз 19.11.2011 20:39 пользователем Кирилл Соколинский (СЗТУ).

Re: Расширение возможностей поиска по словарю
Пользователь: ILV (IP-адрес скрыт)
Дата: 22, November, 2011 09:39

О технологии Аякс в Web-ИРБИС я подумывала, правда не в плане этого поиска. Но я не поняла как можно язык запросов Ирбиса соединить с Аякс.Или язык запросов Ирбиса тут будет не причём?.. А тогда как?.. Обычно же с Аяксом используется какой-нибудь серверный язык?..

Спасибо за ответ.



Редактировано 2 раз. Последний раз 22.11.2011 09:45 пользователем ILV.

Re: Расширение возможностей поиска по словарю
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 27, November, 2011 15:06

ILV написал(а):
-------------------------------------------------------
> Но я не поняла как можно
> язык запросов Ирбиса соединить с Аякс.Или язык
> запросов Ирбиса тут будет не причём?.. А тогда
> как?.. Обычно же с Аяксом используется
> какой-нибудь серверный язык?..

Принцип простой: вы подаёте термин в *_S21STR с *_S21P02=1 и получаете его из ответа WEB ИРБИС в виде запроса. Из запроса Вы выделяете новое представление термина и добавляете его в итоговый запрос.

Естественно, эта простая схема отнюдь не проста в реализации и требует досконального изучения принципов работы WEB ИРБИС, языка форматирования и AJAX...

Страницы: 12>>
Страница: 1 из 2


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