Re: [請益] MySQL 中文檢索問題

看板PHP作者 (大魔王)時間17年前 (2009/02/02 09:48), 編輯推噓2(202)
留言4則, 1人參與, 最新討論串2/2 (看更多)
你的問題可能是這個 一些詞在全文搜索中會被忽略: 任何過於短的詞都會被忽略。 全文搜索所能找到的詞的默認最小長度為4個字符。 停止字中的詞會被忽略。禁用詞就是一個像「the」或「some」 這樣過於平常而被認為是不具語義的詞。存在一個內置的停止字, 但它可以通過用戶自定義列表被改寫。 詞庫和詢問中每一個正確的單詞根據其在詞庫和詢問中的重要性而被衡量。 通過這種方式, 一個出現在許多文件中的單詞具有較低的重要性(而且甚至很多單詞的重要性為零), 原因是在這個特別詞庫中其語義價值較低。 反之,假如這個單詞比較少見,那麼它會得到一個較高的重要性。 然後單詞的重要性被組合,從而用來計算該行的相關性。 這項技術最適合同大型詞庫一起使用 (事實上,此時它經過仔細的調整)。 對於很小的表,單詞分佈並不能充分反映它們的語義價值, 而這個模式有時可能會產生奇特的結果。例如, 雖然單詞「MySQL」出現在文章表中的每一行,但對這個詞的搜索可能得不到任何結果: mysql> SELECT * FROM articles -> WHERE MATCH (title,body) AGAINST ('MySQL'); 找不到搜索的詞(0.00 秒) 這個搜索的結果為空,原因是單詞「MySQL」出現在至少全文的50%的行中。 因此,它被列入停止字。 對於大型數據集,使用這個操作最合適不過了 一個自然語言問詢不會從一個1GB的表每隔一行返回一次。 對於小型數據集,它的用處可能比較小。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.152.1

02/02 16:04, , 1F
我下 sql 查詢「資料」跟「資料庫」都可以查到
02/02 16:04, 1F

02/02 16:05, , 2F
不過還是有以上的問題,照理說「資料」應該可找到
02/02 16:05, 2F

02/02 16:05, , 3F
「資料庫」所找到的東西不是 @_@?
02/02 16:05, 3F

02/02 16:16, , 4F
感謝樓上大大的意見,我會往這方面找尋相關資訊 :>
02/02 16:16, 4F
文章代碼(AID): #19Xb3tyW (PHP)
文章代碼(AID): #19Xb3tyW (PHP)