Обсуждение статьи тематического каталога: Полнотекстовый поиск в MySQL на PHP (mysql search php web)Ссылка на текст статьи: http://www.opennet.me/base/dev/mysql_search.txt.html
Поиск через MATCH, как писал Олег, делается только по слову целиком.
...Впрочем, по релевантности можно только сортировать, а выбирать по
LIKE (это, конечно, скажется на производительности, даже не знаю,
насколько).
То ли я отстал от жизни то ли вы пишите неправду, но честно говоря вот читайте сами:
As of Version 3.23.23, MySQL has support for full-text indexing and searching. Full-text indexes in MySQL are an index of type FULLTEXT....Сколько я знаю хостеров ;) у них нету серверов ниже этой древности да и к тому же вот еще ;)
The boolean full-text search capability supports the following operators:
+
A leading plus sign indicates that this word must be present in every row returned.
-
A leading minus sign indicates that this word must not be present in any row returned.
By default (when neither plus nor minus is specified) the word is optional, but the rows that contain it will be rated higher. This mimicks the behaviour of MATCH() ... AGAINST() without the IN BOOLEAN MODE modifier.
< >
These two operators are used to change a word's contribution to the relevance value that is assigned to a row. The < operator decreases the contribution and the > operator increases it. See the example below.
( )
Parentheses are used to group words into subexpressions.
~
A leading tilde acts as a negation operator, causing the word's contribution to the row relevance to be negative. It's useful for marking noise words. A row that contains such a word will be rated lower than others, but will not be excluded altogether, as it would be with the - operator.
*
An asterisk is the truncation operator. Unlike the other operators, it should be appended to the word, not prepended.
"
The phrase, that is enclosed in double quotes ", matches only rows that contain this phrase literally, as it was typed.
And here are some examples:apple banana
find rows that contain at least one of these words.
+apple +juice
... both words.
+apple macintosh
... word ``apple'', but rank it higher if it also contain ``macintosh''.
+apple -macintosh
... word ``apple'' but not ``macintosh''.
+apple +(>turnover <strudel)
... ``apple'' and ``turnover'', or ``apple'' and ``strudel'' (in any order), but rank ``apple pie'' higher than ``apple strudel''.
apple*
... ``apple'', ``apples'', ``applesauce'', and ``applet''.
"some words"
... ``some words of wisdom'', but not ``some noise words''.Этого хватает что б искать и части слов и городить поиск по n-количеству слов.
По релевантности можно и отсортировать и выбрать, задать критерии поиска, примерно так:
http://aw-creative.ru/webmasters/1/
на счет подсветки..хотел бы посмотреть как она у тебя работает...бред
Полнотекстовый поиск в MySQL на PHP (mys, LineDir, 00:10:53, 02/12/2007 [ответить] (2)
на счет подсветки..хотел бы посмотреть как она у тебя работает...бредНе знаю почему это бред, у меня всё работает нормально.
если искомое слово в тексте начинается с большой буквы, то данная подсветка работать не будет
Спасибо за статью... очень пригодилась
Подъебка это, а не полнотекстовый поиск. Даже Гугл делает это лучше - а он вовсе не шедевр. Парсер поисковых строк должен быть полноценным, а кстати - что делать, если надо индексировать не гипертекстовые или плоские файлы? Как насчет фильтрации? Песта?
Вот наработки хорошей системы поиска, думаю, статья вскоре будет дописана, но додумать и так можно...
http://www.xbrain.ru/content/view/41/10/
> Подъебка это, а не полнотекстовый поискСкрипты Дмитрия Лебедева никогда не были "подъебкой"! А если у кого-то не хватает ума (до/пере)делать скрипт - ДО-СВИ-ДА-НИ-Я!
В статье опечатка
$good = ereg_eplace(" +", " ", $good);
ereg_Replace
Мне кажется все равно полнотекстовый поик на чистом MySQL это бред, медленно..... по крайней мере можно использовать
http://www.deepestweb.com/?p=7
Да это вообще полный бред. Для полнотекстового поиска давно есть специализированные вещи - к примеру Sphinx
Отличная статья, очень интересная, остальной сайт еще не смотрел, но если все в таком-же духе, то просто супер.
З.Ы. Добавил себе в закладки))
Кули такие умные люди заходят на такие сайты и какают в комментах? хорошая статья - не готовое решение, а, так сказать, набор подсказок, пища для размышлений. Спасибо автору. Если нужен поиск по простому сайту на php+mysql с пивком покатит=)
Нормальный поиск
Нормальный поиск для маленького проекта где юзеров online минимум 10 man. Хотите сервер mysql чтобы падал не испоьзуйте для больших проектов типа бд за 100 MB переваливает это если всё в одной таблице myisam. sphinx и создавался для маштабирования бд избавления LIKE, FULLTEXT...
Добрый день.
По умолчанию поиск происходит, если слово не менее 4 символов. Как сделать, чтобы находило слова из 2 символов? Заранее спасибо.
Спасибо автору! Хорошая статья.. узнал для себя немного новенького и полезного :)
Не могу понять одного почему у Вас проблема с слов окруженных тегами. Для этого есть strip_tagsНа выходе все чисто и красиво :)
Спасибо! Использовал правда только кусочек кода (самому лень думать было:)), но все же автор помог, за что и благодарю:)
Я понял кое-что. Сидел долго и думал почему не работает, пока не нашел проблему почему у меня не выводит: http://wikikak.org/poisk_po_saytu_php_mysql
проблема в том, что ограничение нужно поставить и все. Думаю это поможет кому-то.