【发布时间】:2016-05-26 02:24:50
【问题描述】:
“全文索引使得在您索引的列中出现的‘单词’(大于最小长度)越多,返回的行排名的值就越大”
如果我搜索“苹果”:
现在 -
'苹果给我,苹果给你,苹果给stackoverflow'
搜索排名高于
'我吃苹果'
因为在第一行中,“apple”的出现次数是另一行的 3 倍。
如何调整全文搜索以使两行具有相同的搜索排名?
示例查询:
SELECT
title, description, MATCH (title, description)
AGAINST ('apple' IN NATURAL LANGUAGE MODE) AS score
FROM my_table
WHERE MATCH(title, description) AGAINST('apple')
样本表:
+----+--------+----------------------------------- ------------------+ |编号 |标题 |描述 | +----+--------+----------------------------------- ------------------+ | 1 |一个 |苹果给我,苹果给你,苹果给stackoverflow | | 2 |二 |我吃苹果 | +----+--------+----------------------------------- ------------------+【问题讨论】:
-
能否在问题中添加查询?
-
MyISAM?还是 InnoDB? (两个都试试)没有
IN NATURAL LANGUAGE MODE会怎样?
标签: php mysql sql indexing full-text-search