MySQL полнотекстовый поиск и оценка не подтягивая результаты - PullRequest
1 голос
/ 10 августа 2009

Я собрал очень простую поисковую систему на основе статьи и сайта Zend, используя полный текст. Насколько я понимаю, если ключевое слово набирает 50% или более, это будет отброшено. Это хорошо, но я знаю, что моему клиенту это не понравится. Я знаю, что они ожидают, что некоторые ключевые слова будут отображаться в результатах поиска.

Моя главная проблема в том, что, если я ищу, скажем, «дом», это ничего не тянет; все же мы можем ясно видеть, что есть запись для этого в различных местах.

Вот мой сценарий

$sql = "
 SELECT *,
 MATCH(title, content) AGAINST('$keyword') AS score
 FROM articles
 WHERE MATCH(title, content) AGAINST('$keyword')
 ORDER BY score DESC 
";

Есть ли способ изменить счет, чтобы получить больше результатов для точных слов? если так как?

Спасибо

1 Ответ

0 голосов
/ 11 августа 2009

Счет рассчитывается автоматически, я не думаю, что вы можете изменить его. Попробуйте сделать:

$sql = "
 SELECT *,
 MATCH(title, content) AGAINST('" . $keyword . "') AS score
 FROM articles
 WHERE MATCH(title, content) AGAINST('" . $keyword . "')
 ORDER BY score DESC 
";

или

$sql = "
 SELECT *,
 MATCH(title, content) AGAINST('" . $keyword . "' WITH QUERY EXPANSION) AS score
 FROM articles
 WHERE MATCH(title, content) AGAINST('" . $keyword . "' WITH QUERY EXPANSION)
 ORDER BY score DESC 
";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...