Армян
Новичок
Полнотекстовый поиск нескольких слов
Здарова, пхпшники!
Есть база, в ней 1млн. записей\статей. Есть полнотекстовый индекс на поле title. Есть запрос:
По ману(mysql.com) должны выдастся результаты только те, где в тайтле есть все три слова. Однако я получаю след. результат:
http://clip2net.com/clip/m3228/1247829798-clip-4kb.png
Сортировка должна происходить автоматом, но я пробовал и в order by засунуть, либо тоже самое либо еще "лучше".
Настройки менял, через майадмин показывает:
Индексы пересоздал, после изменение настроек.
Пробовал еще так:
Думал все изза слова "for", т.е. оно есть в более чем 50% записей, однако это маловероятно да и в boolean mode это должно игнорироватся.
Собсно вопрос, как добится того чтобы в выдаче были только те записи где есть все три слова, независимо от порядка положения?
Спасибо
-~{}~ 17.07.09 18:33:
любой поиск "for" через match дает пустой результат.
Здарова, пхпшники!
Есть база, в ней 1млн. записей\статей. Есть полнотекстовый индекс на поле title. Есть запрос:
PHP:
SELECT *
FROM `posts`
WHERE MATCH (`posts`.`title`) AGAINST ('+need +for +speed' IN BOOLEAN MODE)
http://clip2net.com/clip/m3228/1247829798-clip-4kb.png
Сортировка должна происходить автоматом, но я пробовал и в order by засунуть, либо тоже самое либо еще "лучше".
Настройки менял, через майадмин показывает:
PHP:
ft min word len=3
Пробовал еще так:
PHP:
SELECT *
FROM `posts`
WHERE MATCH (`posts`.`title`) AGAINST ('+need +for +speed' IN BOOLEAN MODE)
ORDER BY MATCH (`posts`.`title`) AGAINST ('need for speed')
SELECT *
FROM `posts`
WHERE MATCH (`posts`.`title`) AGAINST ('+"need" +"for" +"speed"' IN BOOLEAN MODE) # вообще пустой результат
Собсно вопрос, как добится того чтобы в выдаче были только те записи где есть все три слова, независимо от порядка положения?
Спасибо
-~{}~ 17.07.09 18:33:
PHP:
SELECT COUNT( * )
FROM `posts`
WHERE `title` LIKE '%for%' # rows = 41214