一、什么是elasticsearch
Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene
二、集群、节点、索引、类型、文档、分片
集群:一个集群对应多个节点
节点:集群中的每个节点,一个节点不代表一台服务器
索引:(index)类似于关系型数据库里的“数据库”——它是我们存储和索引关联数据的地方。
类型:逻辑上的数据分类,es 7.x中删除了type的概念
分片:es中最小的数据单元
三、基本操作
1、创建一个索引(数据库)
PUT /索引(数据库)/类型/文档id
2、查看创建的数据
3、创建一个库
4、不创建类型会给个默认的类型
5、修改值
第一种直接PUT
第二种修改方法
6、删除索引
7、文档操作
1、简单搜索
2、复杂查询
3、排序
4、分页
5、布尔值查询
must命令相当于mysql中的AND
should相当于mysql中or
must_not 相当于mysql中!=
过滤条件
多条件查询->使用空格
精确查找
term 是通过倒排索引指定的词条进度精确查找的
关于分词
term 直接查询精确到(效率高)
natch 会使用分词器进行解析(先分析文档,然后通过分析的文档在进行查询)
两个类型text、keyword
text 可以被分词器解析
keyword 不会被分词器解析
高亮查询