2011-12-13 190 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)