FULLTEXT搜索SQL

时间:2011-12-13 19:21:07

标签: mysql sql phpmyadmin

表结构(类型: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)
它确实给了回复!

1 个答案:

答案 0 :(得分:2)

Fulltext Indexes州的文档,如果单词出现得太频繁,则对单词进行全文搜索不会产生任何结果:

  

匹配表中一半行的单词不太可能   找到相关文件。事实上,它很可能找到了很多   无关的文件。我们都知道这种情况经常发生在我们身上   正试图通过搜索引擎在互联网上找到一些东西。它   有了这个推理,包含该单词的行被分配了一个   它们出现的特定数据集的低语义值。一个   给定的单词可能在一个数据集中达到50%的阈值但不是   另一个。

如果您只是尝试一下,请在表中添加更多数据,其中不包含单词akram,以减少标识的行数。

如果这应该是您的生产表,您可能想尝试BOOLEAN模式,该模式不遵循自然语言限制:

SELECT * FROM functions
     WHERE MATCH (function_description)
     AGAINST ('akram' IN BOOLEAN MODE)