Просмотр полной версии : Поиск на сайте
Perignator Temporis
15.04.2003, 17:50
Здравствуйте!
Пытаюсь организовать поиск.
Как я понял, существует 2 возможности: модуль индексированного поиска и "стандартная" поисковая форма из styles.content.searchform
Вопрос вот в чем.. Не могу докопаться до полей индексированного поиска для того, чтобы перевести их на русский. В идеале хотелось бы просто сделать поле и свою картиночку-кнопочку. Без всяких линков расширенных поисков или дропдаунов "где искать".
В индексированном не найду никак где все это отключить, а в "обычном" - как заставить отобразить результаты на отдельной странице..
Вообще, хотелось бы настроить индексированный поиск как более быстрый и полный..
Не подскажете, как его правильно и полностью настроить?
С Уважением.
Perignator Temporis
17.04.2003, 13:29
Сделать отображение поисковой формы с помощью TS или темплейтами невозможно, как я понял.. Там в коде, вроде, у модуля прямо пробито... Попробовал выкрутиться так:
Добавил руками код
<form action="index.php?id=41" method="POST" name="tx_indexedsearch">
<input type="hidden" name="tx_indexedsearch[_sections]" value="0">
<input type="hidden" name="tx_indexedsearch[pointer]" value="0">
<input type="hidden" name="tx_indexedsearch[ext]" value="0">
<input type="text" name="tx_indexedsearch[sword]" value="">
<input type="submit" name="tx_indexedsearch[submit_button]" value="Искать!">
в страницу.
Вроде, чего-то делает, но вот беда: он ничего не ищет! И даже если я кладу модуль индексированного поиска на страницу стандартно - и он все равно не ищет. в Setup веди типа page.config.index_enabled = 1 я прописал, индексатор индексирует, но - не ищет...
А стандартная поисковая форма отчего-то отказывается искать в новостях.. МОжно ее заставить это как-то делать? Заранее спасибо! :)
Perignator Temporis
17.04.2003, 17:16
Дошел до следующего:
Оказывается, Indexed Search не распарсивает слов на русском языке! :( Потому и не ищет..
С другой стороны, "обычный" поиск не умеет искать в модулях, видимо.. Не находит ничего..
Я что-то делаю не так или как быть?
Andreas Schwarzkopf
17.04.2003, 17:22
Обычный поиск не умеет искать в модулях, это правильно. Но во многих модулях есть свой собственный поиск, tt_news, tt_products etc.
Насчет indexed search на русском, не знаю, не пробовал. Обычный поиск работает.
Perignator Temporis
17.04.2003, 17:26
Так да.. А хотелось поиск по сайту сделать.. По всему..
Попробую, может, в индексаторе разобраться...
Вдруг найду чего..
Ответ Каспера по поводу индексации:
"Probably this is because the REGEX which extracts the words from the content is geared for ascii and no >127 chars. Maybe german and danish extras. In the file "class.indexer.php" there is a function "split2words" which splits the word in the content and that does it by "alnum" plus characters found in some internal arrays: ->convChars - obviously we need a solution for splitting the words in other languages wheere the non-ascii chars are different. For now you can make a class extension to this class and insert a list of russian/ukranian chars in these internal arrays and you should be fine.
Feel free to work on a better, more general solution.
[Answered Online during List Management]"
В общем, посоветовали сделать "class extension", в который нужно добавить кириллические символы. Я почти все понял ;-)
Help!!!
Александр
14.06.2003, 16:17
Правильно ли я понял, что нужно добавить русский алфавит в переменную: $convChars?
Вячеслав Анисимов / Averve.Net
29.06.2003, 21:49
Для тех, кто не понял как решить проблему, немного более разжеванную информацию можно увидеть на http://t3bbs.averve.net/viewtopic.php?t=9 .
Michael Shigorin
02.04.2004, 16:59
А для тех, кто получил там 404 -- можно продублировать здесь? :)
Andreas Schwarzkopf
02.04.2004, 17:55
Там было следующее (typo3.net.ru):
1. Найдем файл class.indexer.php в папке typo3/ext/indexed_search
2. Заменим содержимое злосчастной переменной ( строки 45-48 ).
Было:
var $convChars=array( \"qyЉ}t{Њ†v€u\", \"‘™Є?’љ«¤ћ–Ё•\" );
Стало:
var $convChars=array( \"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ\", \"абвгдеёжзийклмнопрстуфхцчшщъыьэюя\" );
3. Сохраняем измененный файл.
[примечание A.S.: у меня не заработало.]
Michael Shigorin
03.04.2004, 00:21
Аналогичное примечание... (еще надо wordOK() покалечить, что также было проделано)
Perignator Temporis
03.04.2004, 00:51
Где-то ты просил мой файл...
http://www.smartmarket.ru/class.indexer.zip
Вот ссылка. Кстати, поглядел на WordOK - и не нашел, что же я там менял.. :)
Но класс рабочий, у меня неплохо бегает.. Однако, алфавитом я ограничился, чтоли.. :/ Не помню уж... Может еще где что менял...
Perignator Temporis
03.04.2004, 00:55
А, не.. Впроде вспомнил..
Там проблема была в том, что rawurlencode для русских букв гнал лажу. Так я запретил rawurlencode'ить буквы, которые в $convChars располагаются... :) А на счет 30% и т.д. - это я не трогал.. Пусть.. :)
Michael Shigorin
24.07.2004, 03:19
http://www.smartmarket.ru/class.indexer.zip: 404...
OTOH: аглицкий у меня наконец-то завелся (правда, и опыту уже чуть поболе), вот сейчас сижу ковыряю русский по документации typo3*.ru :)
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2024, Jelsoft Enterprises Ltd. Перевод: zCarot