Полнотекстовый поиск MYSQL

#mysql #full-text-search

#mysql #полнотекстовый поиск

Вопрос:

итак, я пытаюсь создать простую поисковую систему, которая позволяет пользователю искать имя пользователя, адрес электронной почты, имя и фамилию.

Однако каждый раз, когда я запускаю следующее, он возвращает только russell.harrower вместо russellharrower и russell.harrower

SELECT *, MATCH(username) AGAINST ('russell') as score FROM user_info WHERE MATCH(username) AGAINST ('russell')

Я не уверен, нужно ли мне указывать там статус «нравится» или что, поэтому подумал, что спрошу.

Я хочу, чтобы он упорядочивал весь sql по количеству баллов.

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

1. Почему бы не использовать LIKE ? SELECT * FROM user_info WHERE username LIKE '%russel%';

Ответ №1:

Вы пробовали использовать asterisk (подстановочный знак) в логическом режиме?

 [...] AGAINST (' russell*' IN BOOLEAN MODE)
  

http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

http://www.databasejournal.com/features/mysql/article.php/1587371/Using-Fulltext-Indexes-in-MySQL—Part-2-Boolean-searches.htm

http://www.joedolson.com/boolean-query-in-mysql.php

/ редактировать: не используйте LIKE, особенно с % перед фразой, это очень медленно