簡體   English   中英

MySQL全文搜索不起作用

[英]Mysql full-text search does not work

這是我的數據庫代碼。 問題結果顯示0而不是1

  CREATE TABLE IF NOT EXISTS `house_details` (
   `houses_id` int(10) unsigned NOT NULL AUTO_INCREMENT,

   `everything_search` text NOT NULL

    FULLTEXT KEY `everything_search` (`everything_search`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 


    INSERT INTO `house_details` (`everything_search`) VALUES
     ('Good very good new-market Mymenshing Family sourov 4564'),

這是我的數據庫查詢命令

SELECT * FROM house_details WHERE MATCH (everything_search) AGAINST ('Mymenshing') > 0   ORDER BY `houses_id` DESC LIMIT 0,3 

* 結果是* MySQL返回了一個空結果集(即零行)。 (查詢花費0.0013秒)

它在布爾模式下對我有用:

SELECT * FROM house_details WHERE MATCH (everything_search) 
AGAINST ('Mymenshing' In Boolean mode) > 0   ORDER BY `houses_id` DESC LIMIT 0,3

在這里看看: http : //www.sqlfiddle.com/#!2/d4471/6

進行一些重新搜索后,我發現Mysql中的match-agains重新存在錯誤: http ://bugs.mysql.com/bug.php?id=19583

這是解決“停用詞”的方法: http ://www.nivas.hr/blog/2009/09/15/how-to-disable-mysql-fulltext-stopwords/http: //www.sqlfiddle.com/ #!2 / d4471 / 6

我認為您在where子句中不需要>0

        SELECT * FROM house_details 
        WHERE MATCH (everything_search) AGAINST ('Mymenshing')
        ORDER BY `houses_id` DESC LIMIT 0,3 ;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM