全文检索与ElasticSearch

在数据量小时,可以通过SQL like实现全文检索。

当数据量大时,需要使用到排索引。到排索引是通过属性值来确定记录的位置。

Lucene是一款高性能、可扩展的信息检索工具库。信息检索是指文档搜索、文档内信息搜索或者文档相关的元数据搜索等操作。

ElasticSearch是一个分布式的Restful风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。它使用HTTP+JSON围绕着领域模型的概念进行搜索的各种操作。

分布式存储的实现是分片和节点备份。

分片的规则是分片编号=hash(文档ID)%分片总数。每个节点保存每个分片和机器之间的关系。

节点副本的数目可以任意增减,依赖于硬件的具体情况:性能和数量。

集群的要点:

节点数据的读写,请求会发送到集群的任意一个节点,每个节点都具备处理任何请求的能力。

主节点:在处理数据请求上和其他节点是平等的,它有更重要的工作,需要维护整个集群的状态,增加和移除节点,创建或者删除索引库,维护主分片和集群的关系等。

Master选举,Bully算法。

你可能感兴趣的:(全文检索与ElasticSearch)