Как я могу управлять релевантностью полнотекстового поиска MySQL, чтобы сделать одно поле более «ценным», чем другое?

На самом деле, использование indexing оператора case для создания mysql-server пары флагов может быть лучшим mysqldump решением:

select 
...
, case when keyword like '%' + @input + '%' then 1 else 0 end as keywordmatch
, case when content like '%' + @input + '%' then 1 else 0 end as contentmatch
-- or whatever check you use for the matching
from 
   ... 
   and here the rest of your usual matching query
   ... 
order by keywordmatch desc, contentmatch desc

Опять же, это возможно mysql только в том случае, если full-text-search все совпадения ключевых слов mysql имеют более высокий рейтинг, чем relevance все совпадения только по full-text-search содержанию. Я также сделал mysql-server предположение, что соответствие searching как по ключевому слову, так mysqlclient и по содержанию дает наивысший fulltext-searching рейтинг.

mysql

search

indexing

full-text-search

relevance

2022-10-16T12:48:22+00:00
Вопросы с похожей тематикой, как у вопроса:

Как я могу управлять релевантностью полнотекстового поиска MySQL, чтобы сделать одно поле более «ценным», чем другое?