|
|
| ENG/RUS Главная :: RiSearch :: RiSearch Pro :: RiSearch PHP :: RiLax :: RuMor :: Forum |
|
|
|
|
| Введение :: Документация :: Купить :: License :: Системные требования |
|
|
На главную
RiSearch Pro v.3.2 Manual© С. ТарасовРасширенный поискИногда стандартных возможностей поисковых скриптов недостаточно для создания удобного поискового интерфейса. Предположим, что на сайте представлен архив статей, и пользователь желает найти все статьи одного автора, но эта же фамилия может встречаться в статьях других авторов, которые не должны быть найдены. Или же требуется найти все статьи за последний год, где присутствует заданное слово. Или требуется отсортировать результаты поиска по дате публикации. Можно придумать десятки ситуаций, с которыми стандартные поисковые скрипты не могут справиться. Обычно подобные вещи решаются с помощью реляционных бах данных, но что делать если сайт уже существует и на полную реорганизацию сайта недостаточно ресурсов. Во многих ситуациях вам может помочь расширенный поиск. При использовании расширенного поиска каждый документ представляет собой текст документа и набор дополнительных атрибутов (например "автор", "название", "тема", "дата публикации", "уникальный номер" и т.п.) связанных с документом и с которыми можно совершать различные операции во время поиска. Атрибут может представлять собой текстовую строку, которую можно индексировать наравне с текстом документа, или число, к которому можно применять операции сравнения. Настройка
Для использования расширенного поиска необходимо необходимо дополнительно настроить скрипт.
Во-первых, нужно определить атрибуты. Атрибут задается с помощью двух строк,
текст между этими строками будет являться значением атрибута. Например, можно использовать
дополнительные мета-теги:
Для данного примера в конфигурационном файле нужно написать (номера атрибутов
начинаются с нуля):
Кроме того есть еще два особых атрибута:
Если в вашем случае невозможно получить значения атрибутов используя вышеописанный способ (например, они хранятся в отдельном файле), тогда вам нужно будет самим написать процедуру чтения атрибутов и заменить ею стандартную функцию lib::common_lib::get_attribute(). Затем необходимо указать, как именно будут проиндексированны атрибуты. Возможные варианты:
Для каждого атрибута выберите желаемые варианты, просуммируйте числа и укажите их
в конфиге следующим образом:
Для текстовых атрибутов можно также указать вес, который будет использован при сортировке
результатов по релевантности.
Язык запросовДополнительные возможности потребовали введения новых параметров в строке запроса, которые описаны ниже.
Сортировка результатовРезультаты поиска могут быть отсортированы по какому-либо атрибуту. Для этого нужно использовать параметр "s" с номером атрибута (например "search.pl?q0=ivanov&a2gt=01.01.2000&s=2"). Учтите, что сортировка по текстовому атрибуту может потребовать значительное количество времени, если поиск вернул много совпадений. Результаты можно сортировать сразу по нескольким атрибутам (работает только с текстовыми атрибутами). Например: "q=word&s=2_3" - результаты будут отсортрованы по второму атрибуту, а если второй атрибут совпадает у нескольких документов, то по третьему. Печать результатовЗначения атрибутов, в конфигурации которых был использован вариант "2" (то есть значение атрибута было сохранено в индексе) можно напечатать в результатах поиска наряду с заголовком документа, URL, кратким описанием. Для этого в шаблоне нужно вставить %attr_N%, где N - номер атрибута. |
| http://risearch.org | С.Тарасов, © 2000-2003 |