2011-12-13 159 views
0

表结构(类型:MyISAM数据)全文搜索SQL

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) 

它没有回报任何东西!

回答

2

Fulltext Indexes状态的文档,是一个全文搜索的词产生任何结果,如果出现这个词过于频繁:

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

如果您只是试用它,请在表格中添加更多的数据,其中不包含单词akram,以减少识别的行数。

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

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