求PHP分詞搜尋按匹配數量排序方法

來源:互聯網
上載者:User
首先,分詞功能已做好。

比如搜尋“進階PHP教程”,能提取“進階 PHP 教程”

現在要做的就是按匹配數量來排序。同時含有所有詞的內容排第一、含有兩個詞的排第二,只有一個詞的排最後

求問大神這個功能怎麼實現?


回複討論(解決方案)

如果不使用 全文檢索索引 的話,你的要求雖可實現,但效率極低(聯集查詢)
但是 mysql 的 全文檢索索引 又不支援中文,這就需要安裝第三方軟體
通常安裝第三方軟體是需要付出些代價的
另一解決方案是預先將分詞後的文章以十六進位內碼方式存入資料庫,在使用 mysql 的全文檢索索引
但這需要多出至少一倍的儲存空間

自己抉擇吧

如果不使用 全文檢索索引 的話,你的要求雖可實現,但效率極低(聯集查詢)
但是 mysql 的 全文檢索索引 又不支援中文,這就需要安裝第三方軟體
通常安裝第三方軟體是需要付出些代價的
另一解決方案是預先將分詞後的文章以十六進位內碼方式存入資料庫,在使用 mysql 的全文檢索索引
但這需要多出至少一倍的儲存空間

自己抉擇吧



版主大哥,可能我沒有表述清楚。

打個比方,有三個文章標題是這樣的:
1、教程下載
2、進階PHP教程下載
3、PHP教程下載

我用關鍵詞搜尋:“進階PHP教程”,三個文章標題都要能出來,
排序要像下面這樣:
1、進階PHP教程下載《匹配到三個關鍵詞》
2、PHP教程下載《匹配到兩個關鍵詞》
3、教程下載《匹配到一個關鍵詞》

求實現思路和方法

沒有where的?似乎還是不行,不過先謝謝版本了。

哦,漏了 where
自己補上吧,反正毫無實際意義

你這種情況應該使用全文索引的。
可以考慮Coreseek + Sphinx
參考: http://www.cnblogs.com/yjf512/p/3581869.html

看來分詞搜尋真的是個坑啊
真心感謝兩位版主的熱心解答

你解決了嗎,我現在也想這樣弄啊,求解

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.