Elasticsearch整理

Elasticsearch整理

一、什么是Elasticsearch? 【端口9200】

ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web 接口。Elasticsearch 是用 Java 开发的。

二、为什么要用es搜索引擎

1、分词查询数据库是很难做到的

2、高亮信息的显示,不用搜素引擎我们需要在代码中路做大量的处理

3、倒排索引的机制使得查询速度非常快

三、Lucene与Elasticsearch的关系?

Lucene只是一个库。想要使用它,需要使用java来作为开发语言将其直接集成到你的应用中。

Elasticsearch使用的java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,通过简单的RESTful来隐藏Lucene的复杂性,让全文搜索变得简单。

Elasticsearch不仅仅包括全文搜索的功能,还可以进行一下工作:

  • 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  • 实时分析的分布式搜索引擎。
  • 可以扩展到上百台服务器,

四、Elasticsearch与Solr对比

1、elasticsearch是分布式的 ,不需要其他组件,分发是实时的;

2、es完全支持Lucene的接近实时的搜索;

3、Solr在不考虑建索引(写数据)的同时进行搜索,速度更快。

4、性能方面:【solr不适合是使用搜索的应用】

​ 当实时建立索引时,Solr会产生io阻塞,查询性能较差

​ 随着数据量的增加,Solr的搜索效率会变得更低,而es却没有明显的变化

五、可以用head工具来查看es的运行状态以及数据。IK Analysis中文分词器来进行分词的操作。

六、倒排索引

1、正排索引 通过key找value
2、倒排索引

通过value找key。

在文档数据插入到索引库的时候,es会对文档进行分词。 分词时,根据关键词出现的频率进行id排序,出现频率高的词的id就靠前,分完词会对对应的词的文档记录一个倒排文档列表(倒排文档列表中包含有该词出现的文档DocID以及在该文档中出现的次数,以及改成此时出现在该文档中的位置是第几个词)。当用户搜这个词的时候,就会找到对应的倒排文档列表,把所有的文档列表揪出来,然后根据出现的频率进行排序,然后查找。

七、分片

在存储一个文档时,es将改文的那个人分成n份,分到n个不同的分片上。然后取数据的时候,通过节点上的分片同时取出这n份数据,拼成一个完整的数据。这样做速度更快

八、es库中的数据使用logstash来导入 【端口9600】

【公司中有个专门的logstash服务器哎专门定时导入数据到es库中】

logstash可以将很多第三方的数据源导入到es中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值