搜索引擎在大型網(wǎng)站中也非常重要,尤其是對于大數據的處理方面,比如日志的實(shí)時(shí)收集和分析。
常用的搜索引擎有Elastic Search、RediSearch、Redis-search4j等。
Elastic Search
Elastic Search是一個(gè)基于Lucene構建的開(kāi)源,分布式,RESTful搜索引擎。設計用于云計算中,能夠達到實(shí)時(shí)搜索,穩定,可靠,快速,安裝使用方便。支持通過(guò)HTTP使用JSON進(jìn)行數據索引。不過(guò)Elastic Search安裝運行至少需要Java 7的支持。
同時(shí)我們可以使用 Marvel 可視化監控臺進(jìn)行搜索監控。
RediSearch
RediSearch是一個(gè)高性能的全文搜索引擎,可作為一個(gè)Redis Module 運行在Redis上,是由RedisLabs團隊開(kāi)發(fā)的。
RediSearch 是在Redis基礎上從0開(kāi)始開(kāi)發(fā)的一個(gè)全文搜索索引,使用新的Redis Modules API來(lái)擴展Redis新命令和能力,它的主要特性包括:
-
簡(jiǎn)單,快速索引和搜索
-
數據存儲在內存中,使用內存-有效的自定義數據結構
-
支持多種使用UTF-8編碼的語(yǔ)言
-
文檔和字段評分
-
結果的數值過(guò)濾
-
通過(guò)詞干擴展查詢(xún)
-
精確的短語(yǔ)搜索
-
按特定屬性過(guò)濾結果(例如僅在標題中搜索“foo”)
-
強大的自動(dòng)提示引擎
-
增量索引(不需要對索引進(jìn)行優(yōu)化和壓縮)
-
支持用作存儲在另一數據庫中的文檔的搜索索引
-
支持已經(jīng)在Redis中存在的HASH對象作為文件的索引
-
擴展到多個(gè)Redis實(shí)例
Redis-search4j
redis-search4j也是一款基于redis的搜索組件。
-
基于redis,性能高效
-
實(shí)時(shí)更新索引
-
支持Suggest前綴、拼音查找(AutoComplete功能)
-
支持單個(gè)或多個(gè)分詞搜索
-
可根據字段進(jìn)行結果排序