[英]MySQL fulltext search only works in BOOLEAN Mode. How get relevancy?
I want to search in Natural Language Mode to order results by relevancy, but my query only works with BOOLEAN Mode selector. 我想在自然语言模式中搜索按相关性排序结果,但我的查询仅适用于BOOLEAN模式选择器。 If I use the query without BOOLEAN I get no results.
如果我使用没有BOOLEAN的查询,我得不到任何结果。 Any idea why this does not work?
知道为什么这不起作用吗? Or idea how to get results by relevancy (most matched keywords first) with BOOELAN?
或者想一想如何通过BOOELAN的相关性(最匹配关键词)获得结果?
My query: 我的查询:
SELECT *,
MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE) AS score
FROM
meta_data AS md
INNER JOIN
sites AS si ON md.domain = si.domain && si.domain != '$data[domain]'
WHERE
MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE)
ORDER BY score Desc
LIMIT 25
Database is MyISAM
and I have altered mysql table for fulltext search 数据库是
MyISAM
,我已经改变了mysql表进行全文搜索
FULLTEXT KEY `title` (`title`,`description`,`keywords`)
Change your query to 将您的查询更改为
SELECT *, MATCH(md.keywords) AGAINST('$meta[keywords]') AS score
FROM
meta_data AS md
INNER JOIN sites AS si ON md.domain = si.domain && si.domain != '$data[domain]'
WHERE
MATCH(md.keywords) AGAINST('$meta[keywords]' IN BOOLEAN MODE)
ORDER BY score DESC
LIMIT 25
The 该
MATCH(md.keywords) AGAINST('$meta[keywords]') AS score
will return the relevancy score of the search term and 将返回搜索词的相关性分数和
ORDER BY score DESC
will display your results in descending order (ie highest score first) 将按降序显示结果(即最高分)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.