tinysearch/tinysearch: 使用Rus和Wasm構建的靜態網站的微型全文搜尋引擎
使用 Rust 和 Wasm 構建的靜態網站的小型全文搜尋引擎tinysearch ,tinysearch 是一個輕量級、快速、全文搜尋引擎。它專為靜態網站而設計。
tinysearch 是用 Rust 編寫的,然後編譯成 WebAssembly 以在瀏覽器中執行。它可以與靜態站點生成器一起使用,例如Jekyll、 Hugo、Zola、 Cobalt或Pelican。
技術原理:
tinysearch 是來自文章“使用布隆過濾器編寫全文搜尋引擎”的 Python 程式碼的 Rust/WASM 埠。它可以被看作是lunr.js和 elasticlunr的替代品,它們對於較小的網站來說太重並且載入了大量的 JavaScript。
在幕後,它使用Xor 過濾器——一種用於快速逼近集合成員資格的資料結構,它比布隆過濾器和布穀鳥過濾器小。每篇博文都被轉換成一個過濾器,然後使用bincode將其序列化為二進位制 blob 。請注意,底層技術可能會發生變化。
限制
- 只找到整個單詞。因此,目前還沒有搜尋建議。這是減少記憶體使用的必要折衷。特里資料結構比異或過濾器大 10 倍左右。用於字首搜尋的緊湊資料結構的新研究可能會在未來解除這一限制。
- 由於我們將所有文章的所有搜尋索引捆綁到一個靜態二進位制檔案中,因此我們建議僅將其用於中小型網站。每篇文章預計大約 2 kB 未壓縮(壓縮約 1 kb)。
相關文章
- ElasticSearch全文搜尋引擎Elasticsearch
- 使用 Postgres 的全文搜尋構建可擴充套件的事件驅動搜尋架構套件事件架構
- Nebula 基於 ElasticSearch 的全文搜尋引擎的文字搜尋Elasticsearch
- 使用 Docker 和 Elasticsearch 構建一個全文搜尋應用程式DockerElasticsearch
- 使用Node,Vue和ElasticSearch構建實時搜尋引擎VueElasticsearch
- Lucene : 基於Java的全文搜尋引擎Java
- Django構建靜態網頁站點Django網頁
- Laravel5.5 使用 Elasticsearch 做引擎,scout 全文搜尋LaravelElasticsearch
- 全文搜尋引擎 Elasticsearch 入門教程Elasticsearch
- 雅虎釋出API,構建自己的搜尋引擎API
- 如何用 Node.js 和 Elasticsearch 構建搜尋引擎Node.jsElasticsearch
- 幾大搜尋引擎的網站登入入口網站
- go 分散式全文搜尋引擎 RiotSearchGo分散式
- 網站搜尋引擎優化問題網站優化
- 如何修改網站的 SEO,最佳化網站搜尋引擎排名的方法網站
- Mac上神奇的內建搜尋引擎——Spotlight(聚焦搜尋)Mac
- 搜尋引擎的體系結構
- Tantivy與Quickwit:類似Lucene的Rust全文搜尋引擎庫UIRust
- 常用到釋出的論壇,網站,搜尋引擎類網站
- SQLite中使用全文搜尋FTSSQLite
- Elasticsearch 的配置與使用,為了全文搜尋Elasticsearch
- 如何使用robots禁止各大搜尋引擎爬蟲爬取網站爬蟲網站
- 以圖搜尋——網際網路影象搜尋引擎的“雞肋”?
- Elasticsearch——全文搜尋Elasticsearch
- 深度解析搜尋引擎的原理結構
- 網站搜尋引擎優化值得關注的4個策略網站優化
- 如何優化單頁面網站搜尋引擎?優化網站
- Tomcat和搜尋引擎網路爬蟲的攻防Tomcat爬蟲
- 搜尋引擎索引的資料結構和演算法索引資料結構演算法
- 基於Kafka和Elasticsearch構建實時站內搜尋功能的實踐KafkaElasticsearch
- 【譯】使用PHP和SQL構建可搜尋的加密資料庫PHPSQL加密資料庫
- 使用Google百度等搜尋引擎的常用搜尋技巧Go
- ES(Elasticsearch)支援PB級全文搜尋引擎入門教程Elasticsearch
- 網站偽靜態和純靜態區別網站
- 網站SEO在搜尋引擎中如何獲得更加靠前的排名的?網站
- 基於 Elasticsearch 的站內搜尋引擎實戰Elasticsearch
- 分散式搜尋引擎Elasticsearch的架構分析分散式Elasticsearch架構
- 搜尋引擎-03-搜尋引擎原理