教程介绍


  Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

应用场景

  • 存储
  • 搜索
  • 数据分析
存储

  ES具备存储海量数据的能力,其搜索和数据分析的功能都建立在ElasticSearch存储的海量的数据之上;ElasticSearch很方便的作为海量数据的存储工具。

搜索

  ElasticSearch使用倒排索引,每个字段都被索引且可用于搜索,更是提供了丰富的搜索api,在海量数据下近实时实现近秒级的响应,基于Lucene的开源搜索引擎,为搜索引擎(全文检索,高亮,搜索推荐等)提供了检索的能力。 具体场景:

  • Stack Overflow,IT问题检索;

  • GitHub(开源代码管理),搜索上千亿行代码;

  • 电商类网站和APP,检索商品;

  • 日志数据分析,logstash采集日志,ElasticSearch进行复杂的数据分析(ELK技术,elasticsearch+logstash+kibana);

数据分析

  ElasticSearch也提供了大量数据分析的api和丰富的聚合能力,支持在海量数据的基础上进行数据的分析和处理。具体场景: 爬虫爬取不同电商平台的某个商品的数据,通过ElasticSearch进行数据分析(各个平台的历史价格、购买力等等);

C#操作Elasticsearch的SDK

  C#操作Elasticsearch的驱动有:

  • NEST
  • Elasticsearch.net
  • PlainElastic.Net

  本教程使用Elasticsearch官方提供的Elasticsearch.net SDK。

  《Elasticsearch For .Net项目实战》教程主要讲解Elasticsearch的环境搭建和基于Elasticsearch.netsdk在项目中应用实践。