0、简介

Elasticsearch常见的用方法是大规模的数据检索。基于TF-IDF的词频匹配模型,支持相关性搜索或应用与搜索建议的使用场景。

 

 

 

通过同步机制,将关系数据库中的数据同步到ES中,基于ES做检索,可以提供超越SQL的强大的检索能力。

将数据分片存储,集群化,通过增加更多的服务器实现扩容或容错性。

1、定义文档、类型和索引

ES的数据存储单位是文档,一篇文档通常用JSON表示。

无模式:ES是无模式的,文档并不受模式的限制。它们并不需要拥有映射中所定义的所有字段,也可能提出新的字段。这是如何运作的?首先,映射包含某个类型中当前索引的所有文档的所有字段。但是不是所有的文档必须要有所有的字段。同样,如果-篇新近索引的文档拥有一个映射中尚不存在的字段,Elasticsearch 会自动地将新字段加入映射。为了添加这个字段,Elasticsearch不得不确定它是什么类型,于是Elasticsearch 会进行猜测。但是这种猜测可能会出现错误,因此需要在索引数据之前,定义好所需的映射。

 

2、Elasticsearch节点、主分片和副本分片

EIasticsearch 索引被分解为多块: 分片。一份分片是一个Lucene 的索引, 所以一个Elasticsearch的索引由多个Lucene 的索引组成。这是合理的, 因为EIasticsearch 使用Apache Lucene 作为核心的程序库进行数据的索引和搜索。

默认情况下, 每个索引由5 个主要分片组成, 而每份主要分片又有一个副本, 一共10 份分片,如图2、3 所示。

 

 

 

分布式索引和搜索

 

 

   

3、通过cURL和一个数据集来索引文档

Windows系统可以安装Cygwin来发送HTTP数据。ES可以通过HTTP的方式设置索引和检索内容。

创建一个索引:curl -XPUT 'localhost: 9200/new—index'

获取索引:curl ' localhost: 9200/get—together/_mapping/group?pretty

 

4、搜索和检索数据

5、设置Elasticsearch配置选项

6、在多个节点上工作