2016-09-13 3 views
1

Мы ищем MySQL Query, которые обеспечивают результат точно like '%%' запрос, но с помощью полнотекстового поиска MATCH AGAINSTПолный текст Результат поиска похож на MySql LIKE «%%» запроса

Например

Select id,name from table where jobtitle like '%java software engineer in google%' 

Это дает все строки, содержащие строки инженеров программного обеспечения Java в Google

Но если мы используем следующий запрос MySQL, то это дает другой результат

Select id,name from table 
where MATCH(jobtitle) AGAINST ('+java software engineer in google' IN BOOLEAN MODE) 

Это дает строки, которые содержат любое слово от инженера программного обеспечения Java в Google

Я хочу точный вывод, который приходит с использованием как «% инженер программного обеспечения Java в Google%» запроса.

ответ

0

В MySQL документации на Boolean fulltext search указует (вскипание мое):

Возможность поиска булевой полнотекстовой поддерживает следующие операторов: [...]

"

A фраза, заключенная в символы двойной кавычки ("" "), соответствует только строкам, которые содержат фразу буквально, как было напечатано. Полнотекстовый движок разбивает фразу на слова и выполняет поиск в индекса FULLTEXT для слов. Несловные символы не обязательно точно соответствует: для поиска по фразам требуется только то, что соответствует точно такими же словами, как фраза и в том же порядке. Например, для примера «тестовая фраза» соответствует «test, phrase».

Если фраза не содержит слов, находящихся в индексе, результат пуст. Слова могут отсутствовать в индексе из-за комбинации факторов : если они не существуют в тексте, это временные слова или короче минимальной длины проиндексированных слов.

Таким образом, с помощью оператора: "

Select id,name from table 
where MATCH(jobtitle) AGAINST ('"java software engineer in google"' IN BOOLEAN MODE) 

жирным шрифтом раздел содержит предостережение: результаты могут быть немного отличается из-за характера полнотекстового индекса.

+0

Ваш запрос не имеет результата. ни строк, ни четных строк нет, которые содержат точный инженер-программист в Java. строка в базе данных - это задания для java-разработчика программного обеспечения в google delhi –

+0

Слово 'in', вероятно, короче минимальной длины слова, поэтому индекс полного текста не может найти его, следовательно, он не возвращает никаких записей. См. Обновленный ответ. Добавленная часть была следующим абзацем в связанном руководстве MySQL ... – Shadow

+0

ido не понимаю. Я хочу, чтобы запрос соответствия для поиска в этой строке java-разработчика программного обеспечения в google где-нибудь попал в строки –