PDA

Просмотр полной версии : Поиск на сайте


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
Так да.. А хотелось поиск по сайту сделать.. По всему..
Попробую, может, в индексаторе разобраться...
Вдруг найду чего..

andrew
11.06.2003, 14:18
Ответ Каспера по поводу индексации:

"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 :)