[MySQL] Поиск подстрок в текстовых полях?
SELECT id FROM table WHERE text LIKE '%string%'
это как раз не канает... На этот же движок будет вешаться лента новостей. Их - 10-20 в день. Сколько будет такой запрос кушать времени?
CREATE INDEX
а вот с этого места поподробней...
Индексы пашут тока для запросов, не начинающихся с '%'.
можешь в двух словах объяснить про индексы, чтоб не читать?
Индексы пашут тока для запросов, не начинающихся с '%'.По моему субъективному ощущению это не верно.
The index also can be used for LIKE comparisons if the argument to LIKE is a constant string that doesn't start with a wildcard character.(цитата из http://dev.mysql.com/doc/mysql/en/mysql-indexes.html )
Однако, есть full-text indexing
Ну может они просто в документации перестраховались, вот и все. Я много раз замечал что select-ы наподобие like "%klmn%" выполняются "мгновенно" на сравнительно больших таблицах, так что в full scan трудно поверить...
Да я и сам 20 минут назад про это в документации прочитал, а так вроде всегда использовал без проблем
не сказал бы, что мгновенно, но приемлемо... у меня запрос занимает в среднем .03 секунды по одному слову
А есть же в мускуле встроеные запросы с поиском по релевонтности. Мне пока ненадо было, но точно знаю, что есть...
во... вот это уже лучше, сенкс
Разботаешь - доложись о резултатах...
Действтельно ли стоит применять полнотекстовый поиск для поиска по новостям и разделам сайта?
Я выше уже давал на него ссылку кстати.
мы в россии живем, по русски понимать легче
А, и правда! Я вроде на твою ссылку поглядел (заходить - не заходил но от моей отличить не смог :-)
Оставить комментарий
uncle17
То ли я туплю, то ли что... Есть таблица с текстами. Файлу search.php передается $string. Как выбрать те записи, в которых есть string? Поэффективнее... Пока что там сотня текстов килобайт по 10 каждый.