Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Web Ирбис и Z-Ирбис :  ИРБИС Irbis
 
Функция автодополнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 16, January, 2010 18:28

Введение
Автозаполнение можно без всякого преувеличения назвать самым важным шагом в развитии поисковых возможностей WEB ИРБИС с момента появления модуля. Оно не просто обеспечивает пользователю возможность упрощённого ввода данных, но приоткрывает для него завесу над поисковым инструментарием. Автозаполнение делает невозможными столь хорошо знакомые нам проблемы типа: «я ищу, а оно не ищется», так как пользователь заранее может предсказать результативность поисковой операции.

Функция может быть протестирована на сайте ГПНТБ: [library.gpntb.ru]

Реализация
По мере ввода поискового термина происходит обращение к словарю текущей базы и вывод 10 значений соответствующих введённой строке. Пользователь может с помощью клавиш управления курсора и кнопки Enter выбрать одно из предлагаемых значений.
Возможен ввод нескольких терминов. В этом случае они добавляются в поисковое поле через запятую (см. Расширенный поиск по ключевым словам на сайте ГПНТБ). Можно полностью ограничить допустимые варианты значениями словаря (см. Расширенный поиск по годам).

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

К недостаткам решения относится значительное возрастание нагрузок на сервер. Заполнение одного поля в среднем предполагает около 4 дополнительных запросов к серверу. Тем не менее, если учесть, что большинство библиотечных WEB серверов нагружены на 5%-10%, такие дополнительные издержки нельзя считать критичными.

В том случае если тестирование решения на сайте ГПНТБ не выявит никаких проблем, к началу следующей недели будет подготовлен обновлённый дистрибутив WEB ИРБИС 9.1, включающий функцию автозаполнения.



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

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 17, January, 2010 14:22

Не хватает кэширования результатов запроса. Очень долго идет поиск и совершенно не нужная нагрузка на веб-Ирбис может быть исключена применением каких-нибудь хитрых методов кэширования. Соответственно, может серьезно уменьшится и время отклика при вводе терминов.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 17, January, 2010 16:55

Максим, выражение "какие-нибудь хитрые методы кеширования" ты как программист обязан конкретизировать. ;)

Кроме того, в J-ИРБИС я конечно буду использовать использовать кэширование. Правда не хитрое, а самое обычное. ;)

Максимальная длительность выполнения запроса на стандартной базе и средней машинке (IP 3.2) составляет 1\2 секунды. Максимальная длительность выполнения запроса на громадной базе ГПНТБ -- 2 секунды.



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

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 17, January, 2010 20:42

Я, как программист, не могу ничего конкретизировать, поскольку понимаю, что алгоритмы кэширования могут быть разными. И определение оптимального алгоритма - не задача тестировщика (в качестве которого я сейчас, в общем-то, и выступаю).
Мое мнение - подсказка появляется долго. Даже 0.5 секунды - это очень долго. Должно отрабатывать менее чем за 0.1 сек. Тогда это будет действительно удобно.
Если есть необходимость обсудить алгоритмы кэширования, с удовольствием приму в этом участие.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 17, January, 2010 20:50

Ну и еще.
Предлагаемый здесь механизм действительно очень удобен. Но его нужно оптимизировать и развивать.
Вопрос: если мы вводим сложносоставной запрос в строке, то что должно показаться в подсказке, если в условиях формы стоит признак, что каждое слово из запроса - это отдельный термин словаря?
Замечание: если мы набрали термин, который отсутствует в словаре, то подсказка должна скрываться, а не оставаться на том термине, который ближе всего подходит введенному термину по первым буквам.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 18, January, 2010 00:15

Панев Максим написал(а):
-------------------------------------------------------
> Вопрос: если мы вводим сложносоставной запрос в
> строке, то что должно показаться в подсказке, если
> в условиях формы стоит признак, что каждое слово
> из запроса - это отдельный термин словаря?

Уточни, пожалуйста, что такое "сложносоставной запрос в строке".

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

В Google и Яндексе подсказки берутся из кэша. Термина для вполне удачного запроса в кэше может не оказаться, поэтому при вводе неизвестных вариантов подсказка отключается. В ИРБИС термины берутся из словаря, и если пользователь вводит в нём отсутствующее, запрос однозначно будет неудачным. Поскольку в ИРБИС автоподстановка выполняет не только справочную, но и «руководящую, направляющую функцию», пользователю в случае ошибки ввода необходимо постоянно демонстрировать набор допустимых вариантов.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 18, January, 2010 08:15

По поводу руководящей функции: тогда просто светить введенный термин красным и подписывать вверху над строкой поиска так же красным "Запрос вернет пустой результат".

По поводу запросов. Я имел ввиду, когда в поле ввода вписывается несколько терминов вроде "маркетинг в организациях". При этом по условиям формы Ирбис будет искать все документы, где встречается ключевое слово "маркетинг" и все документы с ключевым словом "организациях". Складывание результата логикой И. А подсказка по прежнему будет считать вводимые слова одним термином "маркетинг в организациях", то по логике настройки формы не правильно.

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

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 18, January, 2010 12:43

> Я там где-то в описании твоем заметил, что
> через запятую можно термины разделять.

Максим, мне кажется, ты слишком увлёкся теоретизированием. ;) Руководствоваться моим описанием для определения эффективности используемого алгоритма – это не серьёзно. ;) Посмотри поиск по ключевым словам в Расширенном режиме и продолжай критику, уже опираясь на реальный функционал. ;)

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 18, January, 2010 13:15

Ну вот попробуй написать в расширенном поиске в ключевых словах "пришел увидел победил". Только не копированием, а набирай. Там у тебя вообще хаос сейчас...

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 18, January, 2010 13:46

Укажи, пожалуйста, какое слово из воинственной реплики "пришел увидел победил" может претендовать на статус ключевого. ;)

Всё-таки, если к электронному каталогу подступает очередной завоеватель, у каталога есть все основания показать завоевателю фигу. ;)))



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

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 18, January, 2010 14:49

Кирилл, я не про результат. Ты пробовал ввести руками эти термины в поисковую строку? Попробуй и увидишь, что строка сама заменяется на что-то совершенно не требуемое по вводимому запросу.
Ничего JS не должен заменять в строке поиска без требования посетителя. Автоподстановка очень сильно раздражает. Интерфейс должен только предлагать, но никак не навязывать.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 18, January, 2010 17:38

> Ничего JS не должен заменять в строке поиска без требования посетителя.

Какой смысл разрешать ввод терминов, если заранее известно, что поиск по ним будет безрезультатным?

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 18, January, 2010 20:33

Не разрешать нужно другими способами. Да и эта подсказка не гарантирует того, что результат будет пустой. Про логику и разделение терминов я уже говорил.
А вообще делай как знаешь, справлять придется уже потом, когда крики и недовольные будут появляться.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 18, January, 2010 21:36

Максим пишет о том что термин "история развития авиации" при логике "И" будет нулевой результат, а при логике "ИЛИ" иметь 100 результатов.
Подсказка по прежнему будет считать вводимые слова одним термином (логика "И") и будет давать нулевой результат.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 27, January, 2010 00:56

Konstantinus написал(а):
-------------------------------------------------------
> Максим пишет о том что термин "история развития
> авиации" при логике "И" будет нулевой результат,
> а при логике "ИЛИ" иметь 100 результатов.
> Подсказка по прежнему будет считать вводимые слова
> одним термином (логика "И") и будет давать нулевой
> результат.

Речь идёт о том, что использование мультиввода(т.е. функции выбора нескольких терминов из словаря) не всегда позволяет гарантировать успех запроса? Это в общем то очевидно... Мне не совсем понятно, какое положение обосновывается.

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 27, January, 2010 01:04

Режим автозаполнения модифицирован.

Изменено:
1. Обеспечено включение режима мультиввода(нескольких терминов через запятую) при выборе поиска по ключевым словам в "Стандартном" поиске

2. При отсутствии в словаре вводимого термина подсказка не выводится. Отдаётся дань Google-Yandex традиции…

Исправлено:
1. В некоторых браузерах при мультивводе выполнялась замена первого, уже выбранного термина на выбранный вновь;

2. Некорректная реакция на клавишу «Б» при мультивводе;
(в связи с этими проблемами я временно отключал мультиввод)

3. Некорректная подсветка вводимого фрагмента в искомых терминах. Сейчас подсвечивается только первая часть слова и не затрагиваются его фрагменты.

На данный момент функция тестировалась в: IE 7.0.5730, Firefox 3.5.7, Opera 10.10. Буду очень признателен за тестирование в других браузерах(особенно других версиях IE).
Cейчас можно вводить «пришел, увидел, победил» и другие самые нелепые запросы без всякого вмешательства со стороны системы.
Я планирую включить режим в дистрибутив WEB ИРБИС к Крыму.



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

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: iLq (IP-адрес скрыт)
Дата: 27, January, 2010 08:37

Кирилл, на ГПНТБ в ключевых словах имеется "програмирование" (с одной "м")
"Програмирование на MS Visual Basic [Текст] : учеб. пособие / А. Н. Богомолов, М. М. Степанов, Н. Н. Потапова. - Волгоград : Волгогр. гос. архитектур.-строит. ун-т, 2005 (Волгоград). - 247 с. : ил. - Библиогр.: с. 198. - 200 экз. - ISBN 5-98276-102-8 : Б. ц."
Есть мнение, это опечатка.

А по сути вопроса: это для J-Ирбис, или для Web-Ирбис?

Re: Функция автозаполнения в WEB ИРБИС 2009.1
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 01, February, 2010 01:35

iLq написал(а):
-------------------------------------------------------
> на сайте ГПНТБ в ключевых словах имеется
> "програмирование" (с одной "м")

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


> А по сути вопроса: это для J-Ирбис, или для
> Web-Ирбис?


Технология будет поддерживаться как в WEB, так и в J-ИРБИС. Для J-ИРБИС эта функция встраивается как плагин и может быть установлена без переустановки системы. Если появится новая версия плагина или возникнет необходимость отказаться от использования функции, плагин может быть удалён, и система вернётся в исходное состояние.

Подробней здесь: [irbis.gpntb.ru]

Пример работы в J-ИРБИС здесь: [library.pgups.ru]

Re: Появление поисковой формы вместо результатов поиска
Пользователь: Konstantinus (IP-адрес скрыт)
Дата: 14, April, 2010 18:44

Как можно уже сейчас попробовать функцию автодополнения? (У меня Веб64 2009.1 + все обновления) и такой красоты нет :) Как это исправить?



Редактировано 1 раз. Последний раз 14.04.2010 22:55 пользователем Konstantinus.

Re: Появление поисковой формы вместо результатов поиска
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 14, April, 2010 22:56

Konstantinus написал(а):
-------------------------------------------------------
> На сайте
> ГПНТБ работает всплывающая подсказка при наборе
> поискового запроса. По-умолчанию (Веб64 2009.1 +
> все обновления) такой красоты нет. Как это
> исправить?

Функция автодополнения будет включена в версию 2010.1.



PS
> Чтоб не создавать новую тему спрошу сюда.

Несмотря на то, что автодополнению посвящена текущая ветка, вопрос был опубликован в ветке "Появление поисковой формы вместо результатов поиска". Это значит, что пользователи интересующиеся сбоями при поиске должны будут тратить время на чтение о ненужной им функции автодополнения, а те, кого интересует информация по автодополнению, её не получат. Я буду вынужден удалять в дальнейшем такие сообщения...



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



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