|
|
|
| Ребят, всем привет!!!
Помогите мне пожалуйста сделать поиск!
Нужно очень срочно а я ненаю как (((
Вот что нужно:
Есть поле для поиска, мне надо чтобы при вводе слова для поиска искалось именно это слово, если в конце добавлен символ * то происходила замена любой комбинации символов, например на слова газ найдет: газета, газированный, газ. Если в конце добавлен символ ? то происходилоа замена только одного символа, например: баннер - баннера, баннеры, но не баннер и не баннерный!!!
Нужно чтоб этот поиск работал по базе mysql всего с одним текстовым полем!!! | |
|
|
|
|
 5.5 Кб |
|
|
для: darkgod
(15.01.2009 в 10:18)
| | полнотекстовой поиск в логическом режиме вам поможет :)
прикрепил слегка урезанную версию того что нашёл . урезал две картинки с какими-то не интересными двумя схемами соединения серверов .
могу дать ссылку на исходный ppt-файл в почти два Mb | |
|
|
|
|
|
|
|
для: xx77
(15.01.2009 в 12:00)
| | ((( не разобрался | |
|
|
|
|
|
|
|
для: darkgod
(15.01.2009 в 12:59)
| | Простой запрос нужен,
И немного придумать как фильтровать слова , как залезть и отредактировать my.cnf для mysql, чтобы три буквы хватало для поиска (вместо четырёх минимум по умолчанию).
Создать FULLTEXT индекс на нужных колонках,
придумать как лучше выдавать результаты строгими порциями,
подумав делать-ли подсчёт того сколько всего результатов.
Написать из всего этого скрипт, и сделать форму.
потом потестить всё это дело , и всё переделать сначала , если не понравится :)
Желательно всё это делать не закрывая мануалы для php и mysql.
Кроме вас никому не известно что-то больше того, что у вас есть таблица с текстом | |
|
|
|
|
|
|
|
для: xx77
(15.01.2009 в 14:26)
| | В логическом режиме нет ограничений на длину слов.
Количество результатов можно узнать средствами mysql (http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows). так что и придумывать ничего не надо. | |
|
|
|
|
|
|
|
для: Loki
(15.01.2009 в 15:36)
| | ограничения есть ,
например не находит слово за слово +за , но находит правда +за* , сто делает заметно долго , и с результатом 6890 страниц, мне кажется это число которое минимально индексируется.
Похоже 4 символа как-раз помогают избегать частого замедления , но найти так можно меньше ,
возможно иногда лучше сделать три , но перехватывать некоторые и эти stop-слова , насчёт которых я ещё не разобрался
SQL_CALC_FOUND_ROWS пожалуй единственное нормальное решение
, хотя уже заметно замедляет (как в прикреплённом файле и пишут)
, пусть даже после первого запроса меньше.
Всё сказывается если данных много,
Меня озадачило ещё то что файл индекса сразу весь прочитывается в память, незнаю как на oracle и прочих бывает | |
|
|
|