美文网首页
ElasticSearch基础

ElasticSearch基础

作者: bullion | 来源:发表于2018-10-26 10:32 被阅读0次

    什么是ElasticSearch

    基于Apache Lucene构建的开源搜索引擎

    采用Java编写,提供简单易用的RESTFul API

    可轻松横向扩展,可支持PB级的结构化或非结构化数据处理

    可用应用场景

    海量数据分析

    站内搜索引擎

    数据仓库

    Elasticsearch、MongoDB和Hadoop比较

    如果你仅仅想要通过关键字和简单的分析,那么Elasticsearch可以完成任务;

    如果你需要查询文档,并且包含更加复杂的分析过程,那么MongoDB相当适合;

    如果你有一个海量的数据,需要大量不同的复杂处理和分析,那么Hadoop提供了最为广泛的工具和灵活性。

    Elasticsearch和Hadoop也可以很好地一起共事的,使用Elasticsearch快速的关键词查询,Hadoop Job则能处理相当复杂的分析。

    基础概念

    集群和节点

    索引(相当于SQL中的data base)

    含有相同属性的文档集合

    类型(相当于SQL中的table)

    索引可以定义一个或多个类型,文档必须属于一个类型

    文档(相当于SQL中的一行数据)

    文档是可以被索引的基本数据单位

    索引分片

    每个索引都有多个分片,每个分片是一个Lucene索引

    拷贝一份分片就完成了分片的备份

    创建索引时默认五个分片一个备份

    elasticsearch 倒排正排

        当用户在主页上搜索关键词“华为手机”时,假设只存在正向索引(forward index),那么就需要扫描索引库中的所有文档,找出所有包含关键词“华为手机”的文档,再根据打分模型进行打分,排出名次后呈现给用户。因为互联网上收录在搜索引擎中的文档的数目是个天文数字,这样的索引结构根本无法满足实时返回排名结果的要求。

        所以,搜索引擎会将正向索引重新构建为倒排索引,即把文件ID对应到关键词的映射转换为关键词到文件ID的映射,每个关键词都对应着一系列的文件,这些文件中都出现这个关键词。

    相关文章

      网友评论

          本文标题:ElasticSearch基础

          本文链接:https://www.haomeiwen.com/subject/zklktqtx.html