Sphinx和CoreSeekSphinx和CoreSeek的工作流程(图)的基本概念
优采云 发布时间: 2021-08-16 04:39Sphinx和CoreSeekSphinx和CoreSeek的工作流程(图)的基本概念
搜索引擎相关的Sphinx和CoreSeekSphinx和CoreSeek介绍Sphinx
Sphinx 是一个基于 SQL 的全文搜索引擎,可以结合 MySQL 和 PostgreSQL 进行全文搜索。它可以提供比数据库本身更专业的搜索功能,让应用更容易实现专业的全文搜索。 Sphinx专门为一些脚本语言设计了搜索API接口,如PHP、Python、Perl、Ruby等,还为MySQL设计了存储引擎插件。
Sphinx 单索引最多可收录 1 亿条记录,1000 万条记录情况下的查询速度为0.x 秒(毫秒)。 Sphinx创建索引的速度如下:创建100万条记录的索引只需3到4分钟,50分钟即可创建1000万条记录的索引,增量索引只收录最新的10万条记录记录重建一次。只需几十秒。
CoreSeek
CoreSeek 为应用程序提供全文搜索功能。当前版本(2.x 3.x)基于Sphinx,支持使用Python定义数据源,支持中文分词。 CoreSeek 集成了Sphinx 的功能,支持更多的数据源,在词典、索引、分词方面支持中文。可以理解为CoreSeek是Sphinx支持中文的全文搜索。
参考:
Sphinx 工作流程
Sphinx的整个工作流程是Indexer程序从数据库中提取数据,对数据进行分词,然后根据生成的分词生成单个或多个索引,传递给searchd程序。然后客户端可以通过 API 调用进行搜索。
流程图说明
弹性搜索
ElasticSearch 可以作为 MongoDB 使用,但不能完全替代。 ElasticSearch 是一个全文搜索引擎。
ElasticSearch 的基本概念
1.集群:一个或多个节点组织在一起
2.Node:一个节点是集群中的一个服务器,用一个名字来标识,默认是一个随机漫威角色的名字。
3.sharding:能够将索引分片,允许水平拆分和扩容,多个分片响应请求,提高性能和吞吐量。 (和数据库索引不一样)
4.Copy:创建一个或多个分片副本的能力,如果一个节点出现故障,可以由剩余的节点覆盖。
ElasticSearch和Mysql概念对比理解
文档(一段json)