一、关于Elasticsearch

1.特点

Elasticsearch基于全文搜索引擎 Apache Lucene ,由Java开发而来,面向API进行搜索, Restful 风格,分布式文件存储。

2.面向文档:

Elasticsearch 将数据以JSON的格式文档的形式;

3.索引:

一个文档就是一个索引,类似数据库中一个数据表;

二、增删查改

一个索引只对应一种类型

PUT 索引/类型/文档id

增(自动生成id)

POST 索引/类型

此种方法生成的id

DELETE 索引/类型/文档id

GET 索引/类型/文档id

GET 索引/类型/_search

_search 为查询关键字

GET 索引/类型/_search?q=userName:liaoge777

查询userName为liaoge777的数据,q为查询参数赋值

_source 对应文档数据;

查询表达式

1.匹配搜索

GET 索引/类型/_search
{
"query": {
"match": {
"userName": "liaoge777"
}
}
}

2.过滤搜索

GET 索引/类型/_search
{
"query": {
"bool": {
"must": {
"match": {
"userName": "lewis"
}
},
"filter": {
"range": {
"age": {"gt": }
}
}
}
}
}

同时匹配用户名为lewis 并且 age 区间是大于26的数据

3.全文搜索(传统数据库难以做到的)

GET 索引/类型/_search
{
"query": {
"match": {
"favorite": "playing games"
}
}
}

分别回去匹配 playing 和 games词汇,并返回符合条件的数据,并使用_score字段表示匹配度

4.短语搜索(严格匹配短语,而不去分割匹配的词汇)

GET 索引/类型/_search
{
"query": {
"match_phrase": {
"favorite": "playing games"
}
}
}

不会分别匹配 playing 和 games,严格匹配字段包含 playing games的数据

5.高亮搜索

GET 索引/类型/_search

{
"query": {
"match_phrase": {
"favorite": "playing games"
}
},
"highlight":{
"fields": {
"favorite": {}
}
}
}

对符合条件的"favorite"字段加上高亮

6.聚合

关键字 aggs 类似SQL中的 Group by ,聚合并得到计数

{
"aggs": {
"all_ages": {
"terms": {
"field": "age"
}
}
}
}

通过"age"字段分组,并得出分组计数结果

_search 为查询所有的关键字;

Elasticsearch学习入门的更多相关文章

  1. .net Elasticsearch 学习入门笔记

    一. es安装相关1.elasticsearch安装  运行http://localhost:9200/2.head插件3.bigdesk插件安装(安装细节百度:windows elasticsear ...

  2. Elasticsearch学习记录(入门篇)

    Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST& ...

  3. ElasticSearch 学习记录之ES几种常见的聚合操作

    ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city&quo ...

  4. ElasticSearch 学习记录之ES短语匹配基本用法

    短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_sea ...

  5. ElasticSearch 学习记录之 分布式文档存储往ES中存数据和取数据的原理

    分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 ...

  6. ElasticSearch 学习记录之如任何设计可扩容的索引结构

    扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引 ...

  7. ElasticSearch 学习记录之ES高亮搜索

    高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "si ...

  8. ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查询

    ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排 ...

  9. ElasticSearch 学习记录之父子结构的查询

    父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": ...

随机推荐

  1. 弱密码检测JR!

    1.JR(Joth the Ripper)简介·一款密码分析工具,支持字典式的暴力破解·通过对 shadow 文件的口令分析,可以检测密码·官方网站:http://www.openwall.com/j ...

  2. SqlCacheDependency 缓存数据库依赖

    启用SQL SERVER 通知 aspnet_regsql.exe -S <Server> -U <Username> -P <Password> -ed -d N ...

  3. 图书商城(基于Jsp+Servlet)

    这个项目主要是加深一下对于servlet和jsp知识相关的了解以及简单业务逻辑的处理. 用户更新的逻辑: 1.点击修改用户的那一行可以获取到用户的id 2.跳转到一个servlet,去查询该用户的基本 ...

  4. python学习记录(持续更新)--最最最基础的一部分(方法,异常处理,注释,类)

    写在前面 本系列教程针对有一定编程经验的伙伴快速入门python基础,一些涉及开发的常识问题,本文并不涉及. 方法 function def greet_user(name): print(f'Hi ...

  5. 5 JSON&与JavaScript转换&JavaScript:void(0)&JavaScript代码规范

    JSON:JavaScript Object Notation   JS对象简谱 一种轻量级的数据交换格式,用于存储和传输数据的格式,通常用于服务端向网页传递数据 是独立的语言,易于理解 JSON语法 ...

  6. 报错PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target"

    今天在调用第三方HTTPS接口的时候,一直显示这个报错,然后百度很久,有2种解决方法,一个是说自己手动去导入,第二种用代码忽略证书验证.我用二种方式, 复制即用, public void test2( ...

  7. Vue - 监听页面刷新和关闭

    一,在 created中 注册 页面刷新和关闭事件 created() {  window.addEventListener('beforeunload', e => this.test(e)) ...

  8. mybatis利用generator自动生成的代码

    /** * 排序规则 */ protected String orderByClause; /** * 去重规则 */ protected boolean distinct; /** * where条 ...

  9. 分支预测(branch prediction)

    记录一个在StackOverflow上看到一个十分有趣的问题:问题. 高票答案的优化方法: 首先找到罪魁祸首: if (data[c] >= 128) sum += data[c]; 优化方案使 ...

  10. js中每隔一段时间执行一次

    window.setInterval("flushs()",1000);