[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Поиск коротких слов в БД
Илья28
Здравствуйте, форумчане! Прошу помочь советом.

Необходимо реализовать функцию поиска по БД MySQL. Требуется, чтобы скрипт выдавал только совпадения с целыми словами или предлогами. Однако при использовании параметра FULLTEXT слова менее 4 символов не находятся. Есть ли ещё какие-либо варианты реализации подобной функции? Заранее спасибо!



Спустя 2 часа, 1 минута, 50 секунд (15.08.2010 - 08:14) Basili4 написал(а):
Илья28
напиши запрос который ты используешь поиск не зависит от количества букв

 SELECT

wsx
FROM
test.table1

WHERE
wsx like 'is';
вот например запрос он все находит

Спустя 8 часов, 54 минуты, 29 секунд (15.08.2010 - 17:08) Guest написал(а):
При использовании like в данном случае найдутся строки содержщие как is, так и island, Istambul. А мне нужны

Цитата
совпадения с целыми словами или предлогами

Спустя 35 минут, 5 секунд (15.08.2010 - 17:43) waldicom написал(а):

Спустя 16 минут, 56 секунд (15.08.2010 - 18:00) Guest написал(а):
Я не могу изменить ft_min_word_len так как не имею доступа к системному файлу.

Спустя 59 минут, 13 секунд (15.08.2010 - 18:59) FatCat написал(а):
Полнотекстовый поиск не спасет?

Спустя 2 часа, 18 минут, 10 секунд (15.08.2010 - 21:18) Guest написал(а):
Вы имеете в виду FULLTEXT? Я ведь про это писал уже в первом посте.

Спустя 2 часа, 53 минуты, 34 секунды (16.08.2010 - 00:11) FatCat написал(а):
Цитата (Guest @ 15.08.2010 - 22:18)
писал уже в первом посте

Мои извинения, прошляпил. [краснеющий смайлик]
Похожую ситуацию в ограниченном тексте решал средствами пхп следующим образом:
1. Сначала все не цифробуквенные символы заменял на пробелы:
 $nstring = " ".preg_replace( "/[^[:alnum:]]/", " " , $nstring );

2. Затем уже искал целые слова:
if(stristr($nstring," ".$word." "))




ИМХО, можно попробовать вытянуть из БД по
WHERE word NOT LIKE '%".$word."%'
вытянуть любые вхождения, и уж затем средствами пхп оставить только те, где вхождения целых слов.

Думаю, это будет менее нагрузочно, чем гонять регулярки в MySQL-е.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.