2019独角兽企业重金招聘Python工程师标准>>>

启动es:

/bin/elasticsearch

浏览器访问: http://localhost:9400/_count?pretty请求文档数量,?pretty表示格式化输出

一个 Elasticsearch 集群可以 包含多个索引 ,相应的每个索引可以包含多个类型。 这些不同的类型存储着多个文档 ,每个文档又有多个属性

索引(名词):

如前所述,一个 索引 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indices 或 indexes 。

索引(动词):

索引一个文档 就是存储一个文档到一个 索引 (名词)中以便它可以被检索和查询到。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时新文档会替换就文档情况之外。

倒排索引:

关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。

一个文档必须包含三个元数据:

_index 索引
_type 对象类别
_id 文档标识

文档增删改查

增加

POST http://localhost:9400/megacorp/employee/1
{"first_name" :  "Douglas","last_name" :   "Fir","age" :         35,"about":        "I like to build cabinets","interests":  [ "forestry" ]
}

如果指定的ID的文档已经存在的话,将会覆盖这个ID的文档数据

如果数据没有自然的ID,ElasticSearch可以自动生成ID,这时应该如下增加数据:

POST http://localhost:9400/megacorp/employee/
{"title": "My second blog entry","text":  "Still trying this out...","date":  "2014/01/01"
}

如果想在对应的ID不存在时才进行索引文档的话,增加_create或者设置op_type为create如下操作:

POST http://localhost:9400/megacorp/employee/1/_create or
POST http://localhost:9400/megacorp/employee/1/_create?op_type=create

修改

同创建时的PUT方法,增加_update表示更新文档一部分 可以增加?version参数进行并发下的冲突处理

POST /website/blog/1/_update
{"doc" : {"tags" : [ "testing" ],"views": 0}
}

删除

DELETE http://localhost:9400/megacorp/employee/1

查找

GET http://localhost:9400/megacorp/employee/_search

搜索

检查文档是否存在

HEAD /megacorp/employee/1

Query-string搜索

GET /megacorp/employee/_search

返回结果放在数组 hits 中。一个搜索默认返回十条结果。

可以将简单的搜索条件放到url中:

GET http://localhost:9400/megacorp/employee/_search?q=first_name:John

查询表达式

简单查询

GET /megacorp/employee/_search
{"query" : {"match" : {"last_name" : "Smith"}}
}

增加过滤查询

GET /megacorp/employee/_search
{"query" : {"bool": {"must": {"match" : {"last_name" : "smith" }},"filter": {"range" : {"age" : { "gt" : 30 } } }}}
}

短语匹配match_phrasematch的区别:match_phrase会明确匹配查询的条件,不会进行分词查询,match会分词查询

高亮查询

查询结果会在句子中匹配的词组增加<em>标签包裹,

详细高亮查询:高亮查询

GET /megacorp/employee/_search
{"query" : {"match_phrase" : {"about" : "rock climbing"}},"highlight": {"fields" : {"about" : {}}}
}

查询可以指定timeout时间

GET /_search?timeout=10ms

查询分页

GET /_search?size=5
GET /_search?size=5&from=5
GET /_search?size=5&from=10

在分布式系统中深度分页

理解为什么深度分页是有问题的,我们可以假设在一个有 5 个主分片的索引中搜索。 当我们请求结果的第一页(结果从 1 到 10 ),每一个分片产生前 10 的结果,并且返回给 协调节点 ,协调节点对 50 个结果排序得到全部结果的前 10 个。

现在假设我们请求第 1000 页--结果从 10001 到 10010 。所有都以相同的方式工作除了每个分片不得不产生前10010个结果以外。 然后协调节点对全部 50050 个结果排序最后丢弃掉这些结果中的 50040 个结果。

可以看到,在分布式系统中,对结果排序的成本随分页的深度成指数上升。这就是 web 搜索引擎对任何查询都不要返回超过 1000 个结果的原因。

转载于:https://my.oschina.net/u/2299936/blog/1560391

Elasticsearch学习笔记1相关推荐

  1. elasticSearch学习笔记04-同义词,停用词,拼音,高亮,拼写纠错

    由于elasticSearch版本更新频繁,此笔记适用ES版本为 7.10.2 此笔记摘录自<Elasticsearch搜索引擎构建入门与实战>第一版 文中涉及代码适用于kibana开发工 ...

  2. ElasticSearch 学习笔记:Multi Search

    本文目录 1 简介 2 格式 3 header格式 4 body格式 5 返回格式 6 性能 7 相关文章 1 简介 批量查询接口(Multi Search API)允许在一次请求中执行多个查询操作, ...

  3. ElasticSearch学习笔记-ngram、中文拼音、简繁体搜索记录

    ElasticSearch版本:elasticsearch-7.3.0 ElasticSearch相关插件安装可以参考: ElasticSearch学习笔记-插件安装记录_人生偌只如初见的博客-CSD ...

  4. ElasticSearch学习笔记之十一 Anayle API和IK分词器

    ElasticSearch学习笔记之十一 Anayle API和IK分词器 Anayle API IK分词器 IK分词器版本支持 安装 下载或者编译 选择一 选择二 重启ElasticSearch I ...

  5. ElasticSearch学习笔记之二十一 指标聚合

    ElasticSearch学习笔记之二十一 指标聚合 指标聚合 Avg Aggregation Script Value Script Missing value Weighted Avg Aggre ...

  6. ElasticSearch学习笔记(8)· ES集群的搭建

    目录 十三.集群的实现 1.相关概念 集群(cluster) 节点(node) 分配和复制(shards & replicas) 2.快速搭建集群 3.安装head插件 十三.集群的实现 1. ...

  7. 黑马程序员--分布式搜索ElasticSearch学习笔记

    写在最前 黑马视频地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想获得最佳的阅读体验,请移步至我的个人博客 SpringCloud学习笔记 消息队列M ...

  8. ElasticSearch 学习笔记

    ElasticSearch (狂神说学习笔记) 1.ES 概述 es是一个开源的高扩展的分布式全文检索引擎, 2.环境安装 环境准备:jdk,你得先安装一个jdk. ES官网: https://www ...

  9. 2022-04-21 ElasticSearch 学习笔记

    Elasticsearch 通用能力 查看文档数量 GET http://192.168.1.243:9200/_count{"query": {"match_all&q ...

  10. ElasticSearch学习笔记记录5【图灵Fox】

    上述代码可以展示动态映射的概念. 学习视频: [2022最新版]ElasticSearch学习教程合集,从ElasticSearch入门到实战几乎包含你需要的所有操作_哔哩哔哩_bilibili

最新文章

  1. 使用 Cufon 渲染网页字体
  2. 随笔(二)-- PyCharm如何更改背景图片
  3. boost::core模块实现分配器指针
  4. lamp mysql开机自启_centos下设置自启动和配置环境变量的方法
  5. 声明式事务基于注解@Transactional的理解
  6. 聊一聊Docker与时区
  7. c/c++ 友元基本概念
  8. Hadoop搭建集群中输入hdfs namenode -format格式化节点时,提示:hdfs: command not found 解决办法
  9. 什么是ITSS认证,需要多长时间
  10. Redis集群环境搭建实践
  11. Sublime_SublimeServer
  12. sql查询时取日期部分内容(年月日时分秒)、增加时间
  13. android mp3 lrc歌词文件utf-8歌词显示为乱码,Android访问Tomcat错误以及mp3player项目乱码问题解决...
  14. Ubuntu 使用XCB
  15. HEX文件和BIN文件的区别及HEX的代码转换
  16. [案例分享]金融大数据:三大应用场景提升营销收益 (二)
  17. Codeforces Gym 100015F Fighting for Triangles 状压DP
  18. 五年级3月30日——4月3日课程表
  19. 使用yigo遇到的小问题
  20. 笔记本有线网络共享为WiFi

热门文章

  1. android文件系统管理
  2. (三)用docker-compose部署postgres+ postgis
  3. SpringMvc和Mybatis整合需要配置的xml
  4. Android简化xml sax解析
  5. 黑马程序员_Java学习日记 num1
  6. Aspectj 实现Method条件运行
  7. Spark数据倾斜的完美解决
  8. python打包工具 --- pyinstaller
  9. python爬虫之基于scrapy_redis的分布式爬虫
  10. BZOJ4771 七彩树(dfs序+树上差分+主席树)