zoukankan      html  css  js  c++  java
  • ElasticSearch介绍

      Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

      Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。Elasticsearch 的实现原理主要分为以下几个步骤,首先用户将数据提交到Elasticsearch 数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。

      下面让我们了解下Elasticsearch的基本特征:

    索引

      Elasticsearch将它的数据存储在一个或多个索引中。通过内部使用Lucene将数据写入索引或从索引中检索数据。

    文档

      文档由字段组成,每个字段都有它的字段名以及一个或多个字段值,文档之间可能有各自不同的字段集合,且文档没有固定的模式或强制结构,它是文章等内容的载体。

    映射

      所有文档写入索引前都需要先进行分析,用户可以设置一些参数,来决定如何将输入文本进行分析或过滤。这些参数设置就是映射,用户可以通过配置映射,达到个性化分析目的。

    类型

      每个存储的文档都有与之对应的类型定义。这允许用户在一个索引中存储多种文档类型,并为不同文档类型提供不同映射。

    节点

      单个Elasticsearch服务实例称为节点。很多时候一个节点足以应对大多数简单需求,但是对于复杂问题,我们也可以使用多节点的Elasticsearch集群。

    集群

      当数据量或查询压力超过单机负载时,需要多个节点来协同处理,所有这些节点组成的系统称为集群。在Elasticsearch中配置一个集群可以提供无间断服务。

    分片

      当数据量超过单机容量时,Elasticsearch将数据散步到多个物理Lucene索引上。这些Lucene索引称为分片(shard).

    副本

      分片处理允许用户向Elasticsearch集群推送超过单机容量的数据。副本(replica)则解决了访问压力过大时单机无法处理所有请求的问题。即为每个分片创建冗余的副本,副本的存在避免了数据的丢失。

    网关

      集群状态、索引设置等各种信息都会被网关收集起来,并被持久化。

    Elasticsearch查询数据

      简单的词项查询、短语查询、范围查询、布尔查询、模糊查询、区间查询、通配符查询、空间查询、复杂查询、文档过滤、相似文档查询等查询方式。

    一些概念解释:

      文档:索引与搜索的主要数据载体,它包含一个或多个字段,存放将要写入索引和从索引搜索出来的数据。

      字段:文档的一个片段,包含字段名称和内容。

      词项:搜索时的一个单位,代表文本中的某个词。

      词条:词项在字段中的一次出现,包含词项的文本、开始和结束的位移以及类型。

    文档评分

      查询和文档评分是相匹配的,得分越高的文档出现在查询的前面。不同查询的文档得分没有可比性,这是因为文档得分依赖多个因子,除了权重和查询本身的结构,还包括匹配的词频数目,词项所在字段,以及用于查询规范化的匹配类型等。

      下面介绍下文档得分的因子:

      文档权重:索引期赋予某个文档的权重值。

      字段权重:查询期赋予某个字段的权重值。

      协调因子:基于文档中词项命中个数的协调因子,一个文档命中了查询中的词项越多,得分越高。

      逆文档频率:一个基于词项的因子,用来告诉评分公式该词项有多么罕见,逆文档频率越低,词项越罕见。

      长度范数:每个字段的基于词项个数的归一化因子。一个字段包含的词项数越多,该因子的权重就越低。这就意味着评分更喜欢包含更少词项的字段。

      词频:一个基于词项的因子,用来表示一个词在某个文档中出现了多少次。词频越高,文档得分越高。

      查询范数:一个基于查询的归一化因子,它等于查询中词项的权重平方和。查询范数使不同查询的得分能相互比较。

    简单概念就介绍到这里了~

  • 相关阅读:
    sql server的for xml path与变通的行转列
    nginx产生【413 request entity too large】错误的原因与解决方法
    spring的15个经典面试题
    数据库死锁预防规范
    服务端高并发分布式架构的演进
    后端接口统一返回响应对象
    数据库的dml、ddl和dcl的概念
    [na]ip routing&no ip routing
    [na]一站式学习wireshark
    [na]tcpdump参数应用参考
  • 原文地址:https://www.cnblogs.com/xiao02fang/p/12969315.html
Copyright © 2011-2022 走看看