Strict Standards: Resource ID#36 used as offset, casting to integer (36) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#39 used as offset, casting to integer (39) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: Что делать с поиском форума?
ТвойWeb » » ExBB Full Mods » Что делать с поиском форума?

Страниц (9): [1] 2 3 4 5 6 7 8 9 »
 

1. TvoyWeb - 27 Января, 2007 - 06:08:10 - перейти к сообщению
Вот вроде добрался и до поиска.
Скачал последню версию скрипта RiSearch и убедился что основные функции которые используются на форуме не подверглись каким бы то нибыло серьезным изменениям.
То есть изменения есть. но они не существенные и многие из них я уже добавил ранее в новую версию FM.

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

Хотелось бы немного рассказать о структуре базы индексов (слов).
Сама база состоит из 5 файлов. Не буду вдаваться зачем каждый из этих файлов нужен и что и в каком виде там хранится.
Это не главное, главное в другом.
Сам по себе скрипт RiSearch предназначен для поиска на страницах сайтах. А это означает что он при индексации запоминает именно страницу (URL). На форуме немного по другому. При индексации поиска на форуме, все посты темы склеиваются вырезаются не нужные символы и из оставшегося создается база индексов темы.
Вообще в RiSearch не возможно найти точное совпадение фразы, только если случайно попадешь на это.
Например ищем по фразе "проблема регистрации на форуме" и ставим галочку AND напротив опции как искать. И что мы получаем? Улыбка скрипт выдаст страницы на которых присутсвуют все эти слова, а не строгое соответствие фразе. на форуме еще хуже, тема состоит из постов и если в первом посте было слово "проблема", в пятом - "форум", а в последнем "регистрация", скрипт нам и выдаст эту тему.
К тому же в скрипте есть опция "схема поиска".

Например схема №1 означает строгое соответствие поисковому слову (запросил "город", получишь именно "город" и ничто другое), но и индексные слова будут полностью писаться в базу индексов.

Схема №2 подразумевает что в базе будут храниться обрезанные слова до первых 4 символов (сейчас уже не помню до какой длинны, но пример такой - "городской" внесется в базу как "горо" ) и искаться будут тоже также (ввел "город" получил и "городок", "городской", "городовой" возможно даже "горожанин" - не проверял).

По схеме №3 в индекс пишутся все слова, но при поиске искомое слово уже ищется не только в начале слова но и посередине и в конце (искал "город" получил "пригород", "благородный", "огород"Подмигивание.

На мой взгляд при таком раскладе функция AND или OR практически не нужна.
Правда при AND количество результатов резко сокращается, но пользователь должен понимать что не получит точного результата.

Сразу хочется сказать тем кто мечтал о добавлении индексов при ответе или создания темы, что этого не получится никак. Это надо такой скрипт написать который разберет базу индексов раздела форума по полочкам добавит слова из нового сообщения и опять соберет эту базу. ИМХО я пока этого делать не собираюсь. Чтобы это сделать нужно полностью разобраться с механизмом индексации и извлечения слов из базы.
Я сегодня полдня посидел над скриптом и голова уже чугунная Улыбка.

Вот и хотелось бы услышать какие-то дельные предложения по поводу поиска.

Сейчас здесь на форуме в списке результатов ссылка на тему ведет на версию для печати. И я сам уже убедился что не все ссылки открывает, потому что в параметры передаются полные слова введенные в поисковом запросе, а не их урезанная версия (так как используется схема №2). В результате если слова урезать то в теме найдутся слова, а они приходят в том виде в котором их ввел пользователь и в теме эти слова не находятся. Клнечно можно передавать в версию для печати также урезанные слова по схеме №2, но тогда не будет желаемого результата.

Столько хотел сказать и объяснить по поводу поиска, но пока писал все забыл. Но в процессе обсуждения думаю все что хотел сказать вспомнится Улыбка.

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

Пожалуйста пишите по существу вопроса. Посты не посуществу будут жестоко удаляться!
2. Alone - 27 Января, 2007 - 10:11:13 - перейти к сообщению
Ну а если сделать например ещё дополнительный выриант версии для печати (только все посты на одной странице) и давать скрипту поиска для индексации именно эту доп. версию для печати. Тогда скрипт будет видеть одну страницу и всё что на этой одной странице.
А вообще лучше конечно чтобы поиск был бы не по страницам а по постам (с якорями). И выдавался бы не список тем, а список постов.

Но по любому всё это не выход. Нет таких фишек как грамматический анализ слова и словосочетаний, со словарём...

Где-то видел на движке Друпала, там как-то было реализовано совмещение с поиском на Гугле (он даёт поиск по конкретному сайту). Так вот как-то так на PHP сделано, что не догадаешься что поиск от Гугла - всё лучшим образом внедрено в дизайн движка.
3. Alone - 27 Января, 2007 - 11:25:32 - перейти к сообщению
Нашёл модуль gsearch (друпаловский). Если кто может и захочет переделать для ExBB то будет классно.

Пример работы и описание: http://drupal.org/node/59150
4. TvoyWeb - 28 Января, 2007 - 00:40:03 - перейти к сообщению
Мда...... желающих видеть хороший поиск хоть отбавляй Улыбка, а предложений путевых ноль.
Alone
Я посмотрел скрипт. Ну во-первых он не пойдет потому как надо еще в гугле регаться и получить некий API ключ. Не думаю что юзерам это понравится Улыбка. Да и разбираться с API google тоже надо время..... к тому же там все на анг., а я не настолько его знаю.
5. Alone - 28 Января, 2007 - 02:56:40 - перейти к сообщению
Ну да региться к сожалению надо.
Но как альтернативу можно юзать этот вариант даже без строгой подстрой под свой сайт как это выдумали друпаловцы (хотя у него и свой родной поиск не плохой).
Очень много плюсов:
1. Гугл всё делает сам.
2. Поиск с самым лучшим алгоритмом поиска.
3. База индексации естессно у Гугла находится.
4. Форму ввода поисковых запросов легко можно сделать под свой сайт.
Минус:
1. Нужно зарегиться.
6. SlyFox - 28 Января, 2007 - 04:00:55 - перейти к сообщению
Цитата:

As of December 5, 2006, we are no longer issuing new API keys for the SOAP Search API. Developers with existing SOAP Search API keys will not be affected.

Так что с гуглом - не вариант определеннно...
7. TvoyWeb - 28 Января, 2007 - 05:18:59 - перейти к сообщению
Самый главный МИНУС
SlyFox пишет:
Так что с гуглом - не вариант определеннно...


Так ну а предложения по скрипту поиска на форуме? Что нет никаких предложений Улыбка

Я конечно могу сделать так как мне удобнее.... но потом начнется...

Как с ссылками Улыбка. Ссылки по идее должны вставляться так:
CODE:
[url=http://tvoyweb.ru]http://tvoyweb.ru/[/url]


Но иногда пользователю хочется подсветить ссылки цветом, а иногда и подчеркиванием.
CODE:
[url=http://tvoyweb.ru][color=green]http://tvoyweb.ru/[/color][/url]

или так: Улыбка
CODE:
[url=http://tvoyweb.ru][color=green][size=18]http://tvoyweb.ru/[/size][/color][/url]

А потом спрашивает почему ссылки не отображаются как ссылки Улыбка
Как говорится на вкус и цвет... Улыбка

Так и с поиском...... надо как то уже определиться.... поэтому и расписал так в первом своем сообщении.
8. Alone - 28 Января, 2007 - 06:02:26 - перейти к сообщению
Я бы в гугле искал по форуму ТвоегоВеба.
Всегда бы находилось то что нужно...
Если надумаете то вот:
https://www.google.com/adsense
9. Валерий - 28 Января, 2007 - 14:05:14 - перейти к сообщению
TvoyWeb
Каким бы не был поиск, он не должен заботить автора проекта.
То есть, не должно быть никакой ручной индексации.
есть поиск - и все.
Второе - хорошо бы, чтобы поиск не создавал кучу для себя. ПВедь при большом объеме тем и ответов, скрипт создаст базу, которая будет мало чем отличаться от самого форума.
По этой причине я свой форум не индексирую.

итак
1. без ручной индесации
2. Без создания базы
10. Ray Wen - 28 Января, 2007 - 14:22:22 - перейти к сообщению
Ну на самом деле выход может быть только один:
Сделать индексацию форума автоматической, в админке задать, скажем раз в неделю или раз в день... но тогда один из пользователей будет попадать на очень долгую загрузку страницы форума... причем желательно чтобы выводилась инфа о том что ему нельзя закрывать страницу и нужно подождать... Но это тоже не очень хорошо, особенно для больших форумов, но другого ничего на файлах не придумать...

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0273]     [ Gzipped ]