Mysql
共享主機上的全文搜尋 - 2000 個條目,每個條目約 500 個單詞
我對數據庫管理相當陌生,希望能得到一些幫助。我想託管一個需要對大約 2000 個項目進行全文搜尋的站點,每個項目大約有 500 個單詞。我需要按相關性對其進行排序。
我試圖避免使用Google自定義搜尋、亞馬遜 AWS 搜尋、Google應用搜尋或任何託管服務(如 sphinx、solr 等)。我試圖避免這種情況的唯一原因是這意味著我的成本和復雜性被控制在了最低水平.
有了這個相當少的整體數量,是否仍然可以使用 MySQL 全文搜尋保持高性能?似乎仍然可以獲得合理的性能,尤其是當文件數量很少時。通常比較是針對數百萬個條目,而不是數千個條目。
我想我的問題是,有可能在簡單的共享主機上使用 MySQL 對這麼多文件進行合理的全文搜尋,還是在沒有引入適當的搜尋引擎軟體的情況下我仍然要求太多。
我經常使用 InnoDB FULLTEXT 查詢一個 170K 行的表。(平均:300 字。)我通常會在 200 毫秒內得到幾十行的答案。如果記憶體是熱的,那麼 200 毫秒會降至 20 毫秒以下。
我認為表中的文件數量不如返回的文件數量重要。如果您需要獲取 100 個文件的文本(在搜尋索引之後),則可能需要整整一秒鐘才能從廉價磁碟中隨機獲取。
謹防基準;他們可能只提供文件 ID,而不是文本;他們可能會假設所有內容都記憶體在 RAM 中。由於您只有幾 MB,因此記憶體對您來說是一個有效的假設。