搜索引擎在大型网站中也非常重要,尤其是对于大数据的处理方面,比如日志的实时收集和分析。
常用的搜索引擎有Elastic Search、RediSearch、Redis-search4j等。
Elastic Search
Elastic Search是一个基于Lucene构建的开源,分布式,RESTful搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。支持通过HTTP使用JSON进行数据索引。不过Elastic Search安装运行至少需要Java 7的支持。
同时我们可以使用 Marvel 可视化监控台进行搜索监控。
RediSearch
RediSearch是一个高性能的全文搜索引擎,可作为一个Redis Module 运行在Redis上,是由RedisLabs团队开发的。
RediSearch 是在Redis基础上从0开始开发的一个全文搜索索引,使用新的Redis Modules API来扩展Redis新命令和能力,它的主要特性包括:
-
简单,快速索引和搜索
-
数据存储在内存中,使用内存-有效的自定义数据结构
-
支持多种使用UTF-8编码的语言
-
文档和字段评分
-
结果的数值过滤
-
通过词干扩展查询
-
精确的短语搜索
-
按特定属性过滤结果(例如仅在标题中搜索“foo”)
-
强大的自动提示引擎
-
增量索引(不需要对索引进行优化和压缩)
-
支持用作存储在另一数据库中的文档的搜索索引
-
支持已经在Redis中存在的HASH对象作为文件的索引
-
扩展到多个Redis实例
Redis-search4j
redis-search4j也是一款基于redis的搜索组件。
-
基于redis,性能高效
-
实时更新索引
-
支持Suggest前缀、拼音查找(AutoComplete功能)
-
支持单个或多个分词搜索
-
可根据字段进行结果排序