表结构(类型:MyISAM)
user_name varchar(30)
function_type varchar(30)
function_name varchar(30)
function_description text
FULLTEXT:
KEYNAME: TYPE: FIELD:
PRIMARY BTREE BTREE function_name
full_text FULLTEXT function_description
我在列“function_description”上有这些值:
function_description:
akram lofaif
that is das
akram is blum test
adnan is fine
当我试图找回这样的值时:
SELECT * FROM functions
WHERE MATCH (function_description)
AGAINST ('akram' IN NATURAL LANGUAGE MODE)
它确实给了回复!
答案 0 :(得分:2)
Fulltext Indexes州的文档,如果单词出现得太频繁,则对单词进行全文搜索不会产生任何结果:
匹配表中一半行的单词不太可能 找到相关文件。事实上,它很可能找到了很多 无关的文件。我们都知道这种情况经常发生在我们身上 正试图通过搜索引擎在互联网上找到一些东西。它 有了这个推理,包含该单词的行被分配了一个 它们出现的特定数据集的低语义值。一个 给定的单词可能在一个数据集中达到50%的阈值但不是 另一个。
如果您只是尝试一下,请在表中添加更多数据,其中不包含单词akram
,以减少标识的行数。
如果这应该是您的生产表,您可能想尝试BOOLEAN
模式,该模式不遵循自然语言限制:
SELECT * FROM functions
WHERE MATCH (function_description)
AGAINST ('akram' IN BOOLEAN MODE)