我們不斷致力於改進 Hexmos 為即將發布的版本提供的產品回饋。
新功能和頁面即將推出,使用者介面正在發生變化,錯誤正在被注意到並修復,並且產品中正在發生許多變化。隨著產品的發展,我們意識到我們需要改進整個產品的導航。
我們已經有了側邊欄和客戶端搜尋包cmdk來導航到不同的螢幕,但是當我們想要搜尋不同的使用者資料、團隊、團隊績效等時就會出現困難,這迫使我們整合更好的第三方回饋搜尋引擎。
使用專用搜尋引擎的另一個原因是我們鏈上還有其他產品,例如FeedZap,未來需要複雜的文字搜尋操作。
考慮到這一點,我們計劃努力實施一個專用的、強大的搜尋引擎,以適應我們的用例和資源可用性。
有許多可用的搜尋引擎,包括開源搜尋引擎、無伺服器、基於伺服器等
在深入找出正確的方案之前,最好先分析您的需求和基礎設施,包括當前和未來的需求。
對於某些產品,可搜尋的資料很少,但需要具有良好的搜尋功能和最少的操作,但又買不起專用伺服器。
對於其他產品,資料集更大,需要額外複雜的搜尋操作,並且有足夠的資源來載入專用搜尋引擎。
基於此,我回顧了一些流行的搜尋引擎。
如果您正在使用 PostgreSQL 並且不想維護任何其他基於索引的資料庫,那麼 PostgreSQL 全文搜尋 (PSFTS) 是一個不錯的選擇。但是,不建議在處理數百萬筆交易和大量資料管理的大型用例中使用它。
如果您的專案位於 Go 生態系統內,Bleve 是另一個值得考慮的選擇。如果您不能依賴強大的基於伺服器的搜尋引擎服務,建議您使用。這是 Bleve 的基準報告。
Tantivy 是用 Rust 編寫的,對於基於 Rust 的專案特別有用。它已經收到了許多正面的回饋,是一個值得考慮的不錯的選擇。
如果您擁有伺服器或雲端實例,並且需要一個強大、可擴展且具有完全控制權的搜尋引擎,那麼基於伺服器的選項就是您的最佳選擇。
我們的考慮和要求促使我們選擇基於伺服器的搜尋引擎。我們有足夠的資源來託管它,它比無伺服器選項更好
經過廣泛的篩選,我們將其範圍縮小到該類別中的四個選項,例如:
以下是它們之間的比較:
Criteria | meiliSearch | Typesense | Pisa Search | Manticore |
---|---|---|---|---|
Search-as-you-type | yes | yes | No | No |
facet search | yes | yes | No | No |
multiple schema/product support | yes | yes | - | yes |
RAM usage | for 224 MB disk:~305 MB RAM prmary index location is disk | primary index location is RAM, for 100MB disk requires 300MB RAM | - | - |
CPU Usage | for 12 core machine it uses maximum 6 core github issues related to high cpu usage | for 4vCPU handle 104 concurrent search/seconds | - | - |
typo, synonyms handling | yes | yes | - | - |
我們過濾掉了 PISA 搜尋和 Manticore,因為它們都不提供我們的應用程式所需的「鍵入時搜尋」和分面搜尋功能。
在這裡繼續閱讀全文:https://journal.hexmos.com/we-chose-meilisearch-over-10-other-search-engines-despite-a-major-drawback/
以上是儘管存在重大缺陷,我們還是選擇了美麗搜尋而不是其他搜尋引擎的詳細內容。更多資訊請關注PHP中文網其他相關文章!