MySQL全文搜索能否返回索引(位置)而不是分数?
作者:互联网
我想使用Match找到的位置/索引…反对mysql中的全文搜索,以返回字段中匹配前后的一些文本.这可能吗?在我看到的所有示例中,Match … Against在select中返回一个分数,而不是在正在搜索的文本字段中的位置或位置.
SELECT
random_field,
MATCH ($search_fields)
AGAINST ('".mysql_real_escape_string(trim($keywords))."' IN BOOLEAN MODE)
AS score
FROM indexed_sites
WHERE
MATCH ($search_fields)
AGAINST ('".mysql_real_escape_string($keywords)."' IN BOOLEAN MODE)
ORDER BY score DESC;
这将给我一个字段和一个分数……但我想要一个索引/位置而不是(或旁边)得分.
解决方法:
全文搜索是一种评分功能.它不是搜索发生功能.换句话说,得分最高的结果可能没有比赛的起始位置.因为它可能是文本中不同匹配的加权结果的组合.如果你包含查询扩展,搜索word / s可能甚至不会出现在结果中!
http://dev.mysql.com/doc/refman/5.0/en/fulltext-query-expansion.html
我希望这是有道理的.
无论如何,你最好的选择是获取结果,然后使用一些文本搜索功能来查找第一个匹配单词的第一次出现.我的猜测是,它最适合像perl这样的文本处理语言或像php这样的更通用的语言,或者你用来运行查询的语言.
DC
标签:mysql,full-text-search,match,against 来源: https://codeday.me/bug/20190710/1420977.html