$sql = "SELECT * FROM data WHERE title LIKE '%" . $word . "%' ORDER BY id LIMIT 10";
ищет слово хорошо !
словосочетание отлично !
но вот например если искать в значении -
"солнышко светит ярко " словосочитание - "светит солнышко" то увы (
а "светит" - найдет )
можно ли как то хитрее запрос ввести или вообще по другому искать ...
перерыл гугл не нашел ничего интересного
Спустя 4 минуты, 12 секунд (19.04.2012 - 13:47) glock18 написал(а):
Спустя 12 минут, 12 секунд (19.04.2012 - 13:59) T1grOK написал(а):
Полнотекстовый индекс
Спустя 4 минуты, 44 секунды (19.04.2012 - 14:04) Bodich написал(а):
Цитата (T1grOK @ 19.04.2012 - 11:59) |
Полнотекстовый индекс |
это как???
Спустя 25 минут, 6 секунд (19.04.2012 - 14:29) Bodich написал(а):
народ, как поиск реализуете ??

Спустя 2 часа, 13 минут, 38 секунд (19.04.2012 - 16:43) I++ написал(а):
В сыром тексте искать накладно.
Я использую схему такую:
Съешь еще этих мягких французских булочек
A + B + C + D + E + F
ABCDEF
мягких булок
D + F
DF
Ищу вхождение D в ABCDEF
Ищу вхождение F в ABCDEF
Сравниваю дальность между D F чем дальше тем меньше связь, услованая единица 0,1,2,3,4 и тд.
Порог значения количество слов поиска деленное на сумму растояний между поисковыми значениями.
2 / 1 = 2 порог константа 10.
Каждое слово проверяется на возможные склонения и множественные значения.
орфография проверяется по статье http://habrahabr.ru/post/50137/
Более быстрые методы не существуют на PHP хотя я пытался реализовать матрицу для более быстрого доступа к нужному участку на подобии B-root дерева и функции http://php.net/manual/ru/function.levenshtein.php но, это все хрень, гугло-код круче
(Слишком много памяти жрет.)
А вообще если ты не хочешь вникать во всю эту хрень, на которую я убил почти 2 года, можешь воспользоваться http://sphinxsearch.com/
P.S Это разумнейший подход, иные самопальные костыли, малоэффективны. И там нужен жесткий матан, который упрощает жизнь.
Я использую схему такую:
Съешь еще этих мягких французских булочек
A + B + C + D + E + F
ABCDEF
мягких булок
D + F
DF
Ищу вхождение D в ABCDEF
Ищу вхождение F в ABCDEF
Сравниваю дальность между D F чем дальше тем меньше связь, услованая единица 0,1,2,3,4 и тд.
Порог значения количество слов поиска деленное на сумму растояний между поисковыми значениями.
2 / 1 = 2 порог константа 10.
Каждое слово проверяется на возможные склонения и множественные значения.
орфография проверяется по статье http://habrahabr.ru/post/50137/
Более быстрые методы не существуют на PHP хотя я пытался реализовать матрицу для более быстрого доступа к нужному участку на подобии B-root дерева и функции http://php.net/manual/ru/function.levenshtein.php но, это все хрень, гугло-код круче

А вообще если ты не хочешь вникать во всю эту хрень, на которую я убил почти 2 года, можешь воспользоваться http://sphinxsearch.com/
P.S Это разумнейший подход, иные самопальные костыли, малоэффективны. И там нужен жесткий матан, который упрощает жизнь.
Спустя 39 минут, 22 секунды (19.04.2012 - 17:22) Bodich написал(а):
спасибо, сложновато это все как то, вот тут еще нашел -
http://www.php.su/articles/?cat=phpdb&page=015
у сфинкса куча настроек нужно день разбирать
http://www.php.su/articles/?cat=phpdb&page=015
у сфинкса куча настроек нужно день разбирать
