ES学习——介绍

前言

在了解Elasticsearch之前,我们应该先了解下:

  1. 什么是搜索引擎
  2. 目前有哪些主流的搜索引擎
  3. 搜索引擎搜索的质量应该如何评价

简介

什么是ES

es全称为Elasticsearch,是一个高度可扩展且开源的全文检索和分析引擎。它可以让您快速且近实时地存储,检索以及分析海量数据。他是用java编写的基于Lucene的一款软件。用户可以很容易的使用RESTful接口进行全文搜索和结构化搜索,当我们发现原来的数据库或系统无法满足我们的搜索需求的时候,我们可以引进es作为我们的搜索引擎来满足需求。

ES能干什么

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对文档(而非成行成列的数据)进行索引、搜索、排序、过滤。这种理解数据的方式与以往完全不同,这也是Elasticsearch能够执行复杂的全文搜索的原因之一。
可以完成的工作主要有:

  1. 分布式实时文件存储,并将每一个字段都编入索引,使其可以被搜索。
  2. 实时分析的分布式搜索引擎。
  3. 也可以作为一款分布式的数据库,支持保存大量结构化或者非结构化的数据

ES相关性评分

前面我们已经了解过如何评价一个搜索质量。而在es里,我们用相关性评分来评价 每一个结果和查询的相关程度,并根据相关程度对结果进行排名。当我们简单的用match来全文搜索的时候,结果中的score就是代表相关性评分。
一般情况下,初始的评分系统已经很全面和完整,具体公式详见:
https://www.elastic.co/guide/cn/elasticsearch/guide/cn/scoring-theory.html
当然,我们也可以自定义评分来满足各种各样的不同情境查询条件。

ES的优缺点和同类竞品

目前市面上较为常用的搜索引擎有es、Solr,这两款都是基于Lucene的搜索引擎。
搜索引擎选择: Elasticsearch与Solr这篇文章里也对两者进行简单的比较和阐述。两者之间最大的区别是相对于es,solr在建立索引时,搜索效率会大大下降,且随着数据量的增加,Solr的效率会变得很低,而Elasticsearch却没有明显的变化。
除了上述两种方案,我们也可以直接选择使用Lucene
Lucene 是一个 JAVA 搜索类库,es和Solr都是基于Lucene实现的,通过结合实际的需求可以定制化和更大的优化空间,更多满足各式各样的需求,但同时需要投入大量的人力物力。

参考资料:
搜索引擎选择: Elasticsearch与Solr
官方文档

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值