前言
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在项目中应用实践。
环境搭建
- windows 10环境配置
- 安装Elasticsearch
- head安装(非必需)
- 安装kibana
- 安装分词器 IK
基本概念
- Index
- Type
- Document
DSL的基本使用
- 增加
- 修改
- - 查询
- - 删除
Elasticsearch .Net
Low level client基本使用
项目实战
源码
总结
参考
Java环境安装
本文是基于windows 10操作系统(也适用于windows server 2012 R2)的ES环境的搭建。由于ES是java语言开发的,所以这里要安装java环境。
jdk下载:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
安装完成之后就是配置环境变量:
查看是否安装成功:
安装Elasticsearch
Elasticsearch版本已经比较多,初学者可能比较懵。特别是在安装head和Kibana的时候,如果版本不匹配,往往会导致无法使用。这里使用的是elasticsearch-5.6.11版本。
elasticsearch-5.6.11下载:
https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-11
解压到C:ELk 备用。
更多教程请点下方的了解更多。