2013-01-30 4 views
2

У меня есть таблица Mysql InnoDB с ключевыми словами 10k, и я хочу сопоставить их с несколькими текстами.Mysql найти ключевые слова в тексте

Некоторые ключевые слова содержат несколько слов, и я хочу только точные соответствия.

Пример: Ключевые слова - коричневая лиса, ленивый кот, собака, лиса, кролик

Текст - шустрая лиса перепрыгивает через ленивую собаку

Я хочу запрос, чтобы вернуться - бурой лисицы, собаки , лисица

+0

У меня есть 10k ключевых слов. Я не могу идти один за другим. –

+0

Пример, который вы даете, - это то, что мне нужно. Идея заключалась в том, чтобы сделать что-то наподобие полного текста SELECT * FROM TABLE WHERE MATCH (ключевые слова) ПРОТИВ («Быстрая коричневая лиса прыгает по ленивой собаке»); проблема в том, что таблица InnoDB и не работает с полным текстом, а полный текст не возвращает только полного соответствия. Он также возвратит частичные соответствия –

ответ

1

Вот одна идея:

SELECT keyword 
FROM Keywords 
JOIN (SELECT 'The quick brown fox jumps over the lazy dog' as col) k 
    on k.col like Concat('%',keywords.keyword,'%') 

И SQL Fiddle.

Удачи.

Смежные вопросы