最近要做一個全文檢索搜尋功能,不知道這塊思路和技術這塊怎麼樣?

來源:互聯網
上載者:User
最近要做全文檢索搜尋功能,使用者輸入框輸入關鍵字,可以搜尋到匹配該關鍵字的文章。
支援對文章內容匹配和文章標題匹配。想問下實現起來複雜嗎?
有哪些比較好的解決方案?

開發語言php,資料庫mysql

回複內容:

最近要做全文檢索搜尋功能,使用者輸入框輸入關鍵字,可以搜尋到匹配該關鍵字的文章。
支援對文章內容匹配和文章標題匹配。想問下實現起來複雜嗎?
有哪些比較好的解決方案?

開發語言php,資料庫mysql

給樓主一個選擇方案:http://www.xunsearch.com/site/usercase
也是開源的,同時也供應商業服務,如果時間充裕的話,可以考慮自主開發,否則選擇開源方案吧,而且社區比較活躍的

sphinx的中文分詞版coreseek。
http://www.coreseek.cn/

我覺得 elasticsearch 還是不錯的,java寫的 就是一個搜搜引擎 而且是分布式的 也可以做記錄搜尋

  1. 資料庫實現的話可擴充性不高。資料量大起來了,效能會下降。

  2. 開源方案有很多,如lucene,需求簡單的話寫來來也很快。也可以使用基於lucene的solr(http://lucene.apache.org/solr/)

最最最方便,擴充性強的,建議使用阿里與的opensearch,簡直太簡單方便了。

開源中文搜尋引擎XunSearch:
http://www.cloud-sun.com/view/product
http://www.xunsearch.com/doc/php/guide/start.installation
1.效能勁爆:XunSearch單庫最多支援40億條資料,在5億網頁大約1.5TB的資料中檢索時間不超過1秒(非緩衝).
2.簡單易用:前端是使用指令碼語言PHP編寫的開發套件.API簡單清晰,開發難度極低,提供全中文的範例程式碼,文檔,輔助指令碼工具等.
3.功能豐富:除支援基礎的自訂分詞,欄位檢索,布爾搜尋外,還直接支援使用者急需的相關搜尋,拼音搜尋,搜尋建議等專業功能.
XunSearch作者同時是中文分詞SCWS(提供有PECL擴充和純PHP實現以及完整中文詞典)的作者馬明練hightman.
http://www.xunsearch.com/scws/index.php
PHP驅動的segmentfault.com的站內搜尋用的就是XunSearch.

XunSearch搜尋建議和錯誤修正(比如拼音搜尋):
http://www.xunsearch.com/doc/php/guide/search.fix

或者你可以利用MySQL InnoDB/MyISAM內建的FullText全文索引欄位類型,用PECL SCWS對檔案內容和標題欄位分詞後存入一個FullText的分詞欄位比如article_fc text,FULLTEXT (article_fc),然後使用者輸入時用PECL SCWS分詞後再用MATCH AGAINST語句進行全文檢索搜尋:

SELECT * FROM articles WHERE MATCH(article_fc) AGAINST('word1 word2');

article_fc欄位所在的表也可以和標題本文所在的文章表分開,查出後串連文章表讀出標題本文即可.甚至可以用SQLite裡建一個分詞表,把分詞內容都存到SQLite中,減輕MySQL壓力.因為SQLite也是支援全文檢索索引的,而且全文檢索索引是一個讀操作,SQLite的讀效能是非常好的.

更簡單粗暴的是,既不依賴PHP SCWS分詞,也不依賴MySQL(InnoDB/MyISAM)/SQLite/XunSearch全文檢索索引,直接提示使用者分開關鍵詞輸入,然後用SQL LIKE進行模糊查詢,資料量不大的情況下是可行且簡單的方案:

SELECT * FROM articles WHERE content LIKE '%word1%' OR content LIKE '%word2%';SELECT * FROM articles WHERE content REGEXP 'word1|word2';

Solr,apache的一個項目

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.