Есть БД с 100к ключевых фраз, таких как:
большой дом
кафельная плитка
зеленая машина в саду
К нам приходит на обработку текст, вида:
В ноябре в Лондоне большой человек купил большой дом для своей большой семьи. В доме была кафельная панель.
Нужно найти в этом тексте все полные совпадения из БД, то есть в нашем случае:
большой дом
Пробовал FULLTEXT INDEX, запрос вида:
SELECT * FROM `phrases` WHERE MATCH(`phrase`) AGAINST('В ноябре в Лондоне большой человек купил большой дом для своей большой семьи. В доме была кафельная панель.')
Возвращает:
большой дом
кафельная плитка
Пробовал с использованием IN BOOLEAN MODE и сравнением кол-ва слов в фразе в БД с кол-вом найденых совпадений, но тогда соответственно вообще не получаю результатов.
Можно ли это как-то сделать на индексированном поисковом движке (будь то средства MySQL или Sphinx) и есть да, то как?
UPD. Судя по ответам, вопрос задан непонятно: у меня база коротких фраз (100000 фраз по 1-2 слова) и на вход я получаю текст (1000 слов). Я ищу текстом по фразам , а не наоборот. Текст не находится в БД и не проиндексирован. Его я получаю извне и не могу контроллировать. Мне нужно, получив текст, выдать для него подходящие фразы из БД.