Когда я вхожу в слово (например: freshers), я хочу, чтобы свежее и свежее записывалось, и в настоящее время я получаю только свежие рекорды. Мой код выглядит так:
$search='freshers'; $qry=mysql_query("select count(*) from jobs where job_title like '%$search%' or MATCH(job_title) AGAINST('$search' IN BOOLEAN MODE)");
когда слово поиска является свежим, я получаю счет как 1200. Когда поисковое слово свежее, я снова получаю счет как 2000.
Как получить почти то же самое количество, когда я вхожу либо в freshers, либо в более свежий.
Вы не можете получить точно такой же счетчик совпадений с любой технологией MySQL с поисковым термином, который является единственным или множественным.
У MySQL нет умений, чтобы знать, что freshers
– это множественное число fresher
freshers
или children
– это множественное число child
. Если вы хотите сделать это с помощью MySQL, вам нужно будет начать поиск с единственной формы слова, для которого вы хотите множественное число.
Также MySQL не знает, что mice
являются множественным числом mouse
.
Если вам нужна автоматическая множественная / исключительная функциональность, вы можете исследовать Lucene или другие технологии поиска естественного языка. Название способности, которую вы ищете, «происходит».
Но вы можете использовать поиск FULLTEXT с терминами с завершающими звездочками. Например, 'fresher*'
соответствует fresher
, freshers
и даже fresherola
. Это расширит поиск от единственного числа до множественного числа. Это не будет работать наоборот. Это
select count(*) from jobs where MATCH(job_title) AGAINST('fresher*' IN BOOLEAN MODE)
Существуют некоторые другие модифицирующие символы для условий поиска в булевом режиме. Они упоминаются здесь:
http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
Pro tip: column LIKE '%searchterm%'
, вероятно, самый медленный способ, которым MySQL предлагает искать столбец. Гарантируется сканирование всей таблицы.
Pro tip: поиск FULLTEXT по своей сути немного нечеткий. Ожидание четких записей из него, вероятно, является путаницей путаницы.
try this $search='fresher'; $qry=mysql_query("select count(*) from jobs where job_title like '$search%'