Поиск по ключевому слову с помощью mysql

#php #mysql

#php #mysql

Вопрос:

Что я должен использовать для поиска по ключевому слову с помощью mysql?

У меня есть слово, и в запросе у меня есть

 wordless
something word something
someword some
else
other
wordother
thingword
  

Я хочу вывести все, что содержит слово внутри него, но вывод должен быть похож на первые выводимые строки, чтобы быть строками со словом в качестве первой буквы в них, например

wordless — будет первым, потому что word — это первые символы слова wordless и слова other, которые будут выведены в первые выводимые строки, затем после них выводить something word something и т.д., Каждое слово, содержащее слово name, но опять же сначала выводить те строки, в первых символах которых есть слово.

Редактировать:

SELECT *,MATCH(add_songName) AGAINST('d' IN BOOLEAN MODE) as оценка FROM songs WHERE MATCH(add_songName) AGAINST('d') ORDER BY score DESC , здесь я ищу d, но это выдает мне ошибку —

 Can't find FULLTEXT index matching the column list   SELECT *,MATCH(add_songName) AGAINST('d' IN BOOLEAN MODE) as `score` FROM songs WHERE MATCH(add_songName) AGAINST('d') ORDER BY `score` DESC
  

Комментарии:

1. вы уже пробовали что-нибудь сами? Есть какой-нибудь код? Проводил какие-либо исследования? Пробовал Google? Копирование названия вашего поста в Google возвращает несколько очень полезных ссылок….

2. field LIKE '%keyword%'

3. «Не удается найти ПОЛНОТЕКСТОВЫЙ индекс», затем добавьте полнотекстовый индекс…

Ответ №1:

Попробуйте использовать алгоритм Левенштейна в MySQL.

Сопоставление по Левенштейну — это показатель для измерения величины разницы между двумя последовательностями, здесь это строки. По умолчанию в MySQL нет этой функции, но вы можете написать и добавить ее.

Пожалуйста, взгляните на приведенный здесь код и добавьте этот код в качестве системной функции в MySQL, пожалуйста, смотрите пример ниже о том, как получить сходство двух строк.

Пожалуйста, смотрите:https://github.com/rakesh-sankar/Tools/blob/master/MySQL/Levenshtein.txt

Пример:
ВЫБЕРИТЕ column1, LEVENSHTEIN(column1, ‘matchme’) КАК perfectmatch ИЗ sometable ORDER С ПОМОЩЬЮ perfectmatch DESC