大数据第15天-elasticsearch

大数据第15天-elasticsearch

lucene 摘要

lucene 是一个全文搜索框架,而不是应用产品。

lucene 的实现原理是倒排索引,lucene的本质就是给搜索内容快速定位

倒排索引
倒排索引是根据所需属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引。简而言之就是固定键的值去查找文章中出现键的位置将文字的tf-idf权重进行从高到低的排序。

为了达到快速定位搜索,lucene需要:

​ 对数据源进行docment封装,再根据需求进行倒排索引(拆词),然后建立倒排索引文档同时对旧的doc进行选择性保存(来源路径必须保存),形成保存在磁盘中的新doc(旧doc文档会被销毁)新文档中都有一个id,文章内容来自于旧doc数据。 旧doc包含3个属性{是否保存 是否分词 是否索引 }

lucene 承载数据有2种方式:静量全量和sharding切片

1561081299751

Elasticsearch

横纵向扩展原理

​ 在横向扩展的数据输入时,采用%n的方式将数据放入每个切片中,此时在每个切片中含有新的doc文档和该文档的index索引。在数据输出时,需要在多个分片中找到闲暇的分片作为临时性代理,汇总其他数据,进行输出。增加了扩展并处理并发,但是没有解决高可用问题。

​ 在纵向扩展时,采用主从模型,在不同于本分片位置的其他分片上(从分片),由从分片承担主分片的读/查询的压力。

当数据量增加时需要创建一个新的节点而产生问题,不能%槽位,因为redis的数据都是静态的数据<k,v>,lucene本身就是一个实时的计算框架,所以在搭建之前需要经过数据估算后,在%的时候多取一些lucene片。因为后续不能重新划分lucene,只能增加服务器。

Elasticsearch 是一个基于Lucene的实时的分布式搜索和分析引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。基于RESTful接口。

ElasticSearch与Solr优缺点对比 --联网处理数据,单机处理数据
Solr 利用 Zookeeper 进行分布式管理,而 Elasticsearch 自身带有分布式协调管理功能;
Solr 支持更多格式的数据,而 Elasticsearch 仅支持json文件格式;
Solr 官方提供的功能更多,而 Elasticsearch 本身更注重于核心功能,高级功能多有第三方插件提供;
Solr 在传统的搜索应用中表现好于 Elasticsearch,但在处理实时搜索应用时效率明显低于 Elasticsearch。
Solr 是传统搜索应用的有力解决方案,但 Elasticsearch 更适用于新兴的实时搜索

资源 GET PUT POST DELETE
一组资源的URI,如: http://example.com/resources/ 列出URI,以及该资源组中每个资源的详细信息(后者可选) 使用指定的一组资源替换当前整组资源 在本组资源中创建/追加一个新的资源。该操作往往返回新资源的url地址 删除整组资源
单个资源的URI,比如: http://example.com/resources/142 获取指定资源的详细信息,格式可以自选一个合适的网络媒体类型(如xml或者json) 替换/创建指定的资源,并将其追加到相应的资源组中。 把指定的资源当成一个资源组,并在其下创建/追加一个新的元素,使其隶属于当前资源 删除指定的元素
操作 获取对象当前状态 改变对象状态 创建对象 删除对象

XPUT和XPOST都可以做创建和修改工作,当ID没有时执行创建工作,当ID存在时,对doc进行内容修改,两者的区别在于当使用XPOST时,可以不设置ID,由内部自己生成,但是使用XPUT时必须自己设置ID。

关系型数据库 ElasticSearch
database(数据库) index(索引库)
table(表) type(类型)
row(行) document(文档)
column(列) field(字段)

推送doc格式(通过curl操作ElasticSearch的命令)

curl -XPOST http://sxt003:9200/bjsxt/employee -d ’
{
“first_name” :“bin”, “last_name” : “tang”,
“age” : 33,
“about” : “I love to gorock climbing”,
“interests”: [ “sports”, “music” ]
}’

1561101484918

1561167207714

猜你喜欢

转载自blog.csdn.net/qq_40929921/article/details/93300116