全文检索与ElasticSearch
在数据量小时,可以通过SQL like实现全文检索。
当数据量大时,需要使用到排索引。到排索引是通过属性值来确定记录的位置。
Lucene是一款高性能、可扩展的信息检索工具库。信息检索是指文档搜索、文档内信息搜索或者文档相关的元数据搜索等操作。
ElasticSearch是一个分布式的Restful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。它使用HTTP+JSON围绕着领域模型的概念进行搜索的各种操作。
分布式存储的实现是分片和节点备份。
分片的规则是分片编号=hash(文档ID)%分片总数。每个节点保存每个分片和机器之间的关系。
节点副本的数目可以任意增减,依赖于硬件的具体情况:性能和数量。
集群的要点:
节点数据的读写,请求会发送到集群的任意一个节点,每个节点都具备处理任何请求的能力。
主节点:在处理数据请求上和其他节点是平等的,它有更重要的工作,需要维护整个集群的状态,增加和移除节点,创建或者删除索引库,维护主分片和集群的关系等。
【全文检索与ElasticSearch】Master选举,Bully算法。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- Docker应用:容器间通信与Mariadb数据库主从复制
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量
- 第326天
- Shell-Bash变量与运算符
- 逻辑回归的理解与python示例
- Guava|Guava RateLimiter与限流算法
- 我和你之前距离
- CGI,FastCGI,PHP-CGI与PHP-FPM
- 原生家庭之痛与超越