Описание: Обсуждение механизма поиска новой версии форума |
Поиск в теме | Версия для печати |
TvoyWeb |
Отправлено: 27 Января, 2007 - 06:08:10
|
Главный здесь
Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003
Откуда: Tashkent Uz
Карма 52
|
Вот вроде добрался и до поиска.
Скачал последню версию скрипта RiSearch и убедился что основные функции которые используются на форуме не подверглись каким бы то нибыло серьезным изменениям.
То есть изменения есть. но они не существенные и многие из них я уже добавил ранее в новую версию FM.
Вообще на форуме используется механизм индексации и хранения базы индексных слов, а так же механизм поиска слов в базе по поисковым словам запроса.
Хотелось бы немного рассказать о структуре базы индексов (слов).
Сама база состоит из 5 файлов. Не буду вдаваться зачем каждый из этих файлов нужен и что и в каком виде там хранится.
Это не главное, главное в другом.
Сам по себе скрипт RiSearch предназначен для поиска на страницах сайтах. А это означает что он при индексации запоминает именно страницу (URL). На форуме немного по другому. При индексации поиска на форуме, все посты темы склеиваются вырезаются не нужные символы и из оставшегося создается база индексов темы.
Вообще в RiSearch не возможно найти точное совпадение фразы, только если случайно попадешь на это.
Например ищем по фразе "проблема регистрации на форуме" и ставим галочку AND напротив опции как искать. И что мы получаем? скрипт выдаст страницы на которых присутсвуют все эти слова, а не строгое соответствие фразе. на форуме еще хуже, тема состоит из постов и если в первом посте было слово "проблема", в пятом - "форум", а в последнем "регистрация", скрипт нам и выдаст эту тему.
К тому же в скрипте есть опция "схема поиска".
Например схема №1 означает строгое соответствие поисковому слову (запросил "город", получишь именно "город" и ничто другое), но и индексные слова будут полностью писаться в базу индексов.
Схема №2 подразумевает что в базе будут храниться обрезанные слова до первых 4 символов (сейчас уже не помню до какой длинны, но пример такой - "городской" внесется в базу как "горо" ) и искаться будут тоже также (ввел "город" получил и "городок", "городской", "городовой" возможно даже "горожанин" - не проверял).
По схеме №3 в индекс пишутся все слова, но при поиске искомое слово уже ищется не только в начале слова но и посередине и в конце (искал "город" получил "пригород", "благородный", "огород".
На мой взгляд при таком раскладе функция AND или OR практически не нужна.
Правда при AND количество результатов резко сокращается, но пользователь должен понимать что не получит точного результата.
Сразу хочется сказать тем кто мечтал о добавлении индексов при ответе или создания темы, что этого не получится никак. Это надо такой скрипт написать который разберет базу индексов раздела форума по полочкам добавит слова из нового сообщения и опять соберет эту базу. ИМХО я пока этого делать не собираюсь. Чтобы это сделать нужно полностью разобраться с механизмом индексации и извлечения слов из базы.
Я сегодня полдня посидел над скриптом и голова уже чугунная .
Вот и хотелось бы услышать какие-то дельные предложения по поводу поиска.
Сейчас здесь на форуме в списке результатов ссылка на тему ведет на версию для печати. И я сам уже убедился что не все ссылки открывает, потому что в параметры передаются полные слова введенные в поисковом запросе, а не их урезанная версия (так как используется схема №2). В результате если слова урезать то в теме найдутся слова, а они приходят в том виде в котором их ввел пользователь и в теме эти слова не находятся. Клнечно можно передавать в версию для печати также урезанные слова по схеме №2, но тогда не будет желаемого результата.
Столько хотел сказать и объяснить по поводу поиска, но пока писал все забыл. Но в процессе обсуждения думаю все что хотел сказать вспомнится .
Да и еще, можно конечно использовать и динамический поиск. Для небольших форумов он будет работать довольно быстро, а вот для больших таких как этот форум.... даже не знаю не пробовал. К тому же придется ограничить поиск только по разделам, дабы не нагружать сервер и не выслушивать слова негодования от хостера .
Пожалуйста пишите по существу вопроса. Посты не посуществу будут жестоко удаляться! |
|
|
|
Поиск в теме | Версия для печати |
Страниц (9): [1] 2 3 4 5 6 7 8 9 » |
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0) |
« ExBB Full Mods » |
Все гости форума могут просматривать этот раздел. Только администраторы и модераторы могут создавать новые темы в этом разделе. Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
|
|
|