我有10,000,000條記錄,這將是搜索記錄的最佳技術,目前我使用全文搜索,但速度很慢,請建議。哪一個是搜索記錄的最佳serach技術
回答
這取決於以下幾個簡單的問題:
- 什麼樣的數據進行處理? (簡單的條目,如「名字,姓氏」,或更復雜的數據集?
- 它是如何構成的?(普通數據庫表?分區?)
- 你怎麼尋找?(即搜索在電話目錄名)
沒有一個放之四海而皆準的解決辦法,但你可以嘗試一下:
獅身人面像
如何實現全文海對於1000萬行以上的表格,請保留 並保持相關性? 獅身人面像擅長那些 謎語。
斯芬克斯是全文搜索引擎, GPL版本2 商業許可下發布的,也是嵌入式應用提供 。
一般來說,它是一個獨立的搜索引擎 ,旨在爲客戶提供快捷, 規模效益和有關全文 搜索功能到其它 應用。 Sphinx特別設計用於與SQL 數據庫和腳本語言很好地集成。 目前內置的數據源 支持讀取數據或者通過 直接連接到MySQL或PostgreSQL的 或使用XML管道 機制(一管索引中獅身人面像 識別 特殊的基於XML的格式)。
至於名稱,獅身人面像是一個首字母縮寫詞 它被正式解碼爲SQL 短語索引。是的,我知道CMU的 Sphinx項目。
Lucene PHP (Part of Zend Framework):
Zend_Search_Lucene是一個完全由PHP 5編寫 一般 通用文本搜索引擎是因爲它存儲了 指數上的文件系統,並且不 需要一個數據庫服務器,它可以將 搜索功能添加到幾乎所有的 PHP驅動的網站。Zend_Search_Lucene的 支持以下功能:
- 排名功能的搜索 - 最好的結果顯示第一
- 許多強大的查詢類型:短語查詢,布爾查詢,通配符
查詢,近似查詢,範圍
查詢等等。- 搜索特定的字段(例如,標題,作者,內容)
http://framework.zend.com/ http://framework.zend.com/manual/en/zend.search.lucene.overview.html
+1用於提示Zend_Lucene。從來沒有用過這麼多的東西,但從來沒有性能問題。 – Maerlyn 2010-06-30 09:19:14
,因爲我沒有這麼大的數據集這樣的在這裏工作有一些想法,可能工作:
第一個問題是,這些記錄是靜態的(geoip的例子)或不?
- 我會嘗試儘可能多的優化我的數據庫,我可以(嘗試使用EXPLAIN如果你使用MySQL)
- 查找出每一個類型的查詢,可以是有可能,儘量優化數據庫針對這些查詢
- 如果索引很好,我會用某種緩存去保存以前的結果集。當你的數據庫沒有正式更新時,這會很方便。
- 可以和cron上面的工作(例如:最常用的搜索查詢及其結果可以過預緩存)
- 嘗試優化這些想法爲您的需求
如果你也許可以提供一些更多的細節我可以改進我的提示。
這些都是非常有用的技術感謝 – Jos 2010-06-30 08:02:19
使用Solr。這是lucene,通過http協議可以輕鬆訪問一些附加內容。與任何來自mysql的全文搜索相比,它的速度非常快。
- 1. 什麼是從對象記錄數據的最佳技術?
- 2. 哪種搜索技術可用於ASP.NET?
- 3. 大範圍輸入數據的最佳搜索技術
- 4. 哪一個是首選的CGI技術?
- 5. 通過SQL表中100,000條記錄進行通配符搜索的最佳優化技術是什麼
- 6. 爲用戶保存密碼記錄的最佳技術?
- 7. 最佳加密技術
- 8. 在一天內製作一個簡單的可搜索人員及其技能目錄 - 哪些技術?
- 9. 簡單搜索只搜索記錄的最後一個單詞
- 10. 什麼是存儲多個ID的最佳技術?
- 11. 時間線的最佳技術
- 12. 學習新技術的最佳實踐
- 13. 用於Windows平臺的最佳技術?
- 14. AJAX Web開發的最佳技術
- 15. 用Linq和SQL Server搜索匹配子字符串的最佳技術
- 16. 哪個是最好的無損數據庫壓縮技術
- 17. 什麼是最好的和最活躍的開源.Net搜索技術?
- 18. 哪種技術:PhoneGap,xml中的大數據和快速搜索?
- 19. Facebook搜索背後的技術
- 20. mysql數據的文本搜索技術
- 21. Jquery-mobile和Phonegap最佳技術
- 22. 什麼是記住組織中的技術知識的最佳方式
- 23. 何時在Sharepoint開發中使用哪種搜索技術?
- 24. 用於移動Safari的最高性能實時搜索技術
- 25. 記錄哪個是最好的方式
- 26. 蟒蛇搜索技術:單詞類似
- 27. 搜索引擎優化技術網站
- 28. 在SQL中搜索技術(Like,Contain)
- 29. 哪一種是在Swift中排序大量文本記錄的最快排序技術?
- 30. 最佳哈希技術爲PHP MySQL登錄?
請給出一些更多的信息和代碼(關於您的表格結構) – Thariama 2010-06-30 07:41:19
給我們更多的細節:你在搜索什麼,這些記錄的頻率和方式如何? - 簡單地說 - 請給我們一些例子。 – 2010-06-30 07:42:37
考慮一個包含五個表的數據庫的情況,並且我只在一個表上用100列進行選擇,其中20個用於全文索引。 所有的列值都是文本值並經常變化。這會幫助大師(你們全部)。 :) – Jos 2010-06-30 07:47:44