短语匹配 短语匹配故名思意就是对分词后的短语就是匹配,而不是仅仅对单独的单词进行匹配 下面就是根据下面的脚本例子来看整个短语匹配的有哪些作用和优点 GET /my_index/my_type/_search { "query": { "match_phrase": { "title": "quick brown fox" } } } //查询分词之后连续的 //例如 brown fox 可以查询到,但是quick fox 查询…
ES几种常见的聚合操作 普通聚合 POST /product/_search { "size": 0, "aggs": { "agg_city": { "terms": { "field": "departureCitys" //字段 } } } } 父子结构的索引的聚合 POST product/_search { "size": 0, "aggs&quo…
高亮搜索 ES 通过在查询的时候可以在查询之后的字段数据加上html 标签字段,使文档在在web 界面上显示的时候是由颜色或者字体格式的 GET /product/_search { "size": 200, "query": { "match_phrase": { "name": "上海" } }, "highlight": { "fields": { "…
ES添加排序 在默认的情况下,ES 是根据文档的得分score来进行文档额排序的.但是自己可以根据自己的针对一些字段进行排序.就像下面的查询脚本一样.下面的这个查询是根据productid这个值进行排序的,而且进行了双字段的排序.当productid 相同时的文档是根据下面的那个排序字段进行的排序 POST /product/_search { "query": { "bool": { "filter": { "term":…
近实时搜索 提交(Commiting)一个新的段到磁盘需要一个 fsync 来确保段被物理性地写入磁盘,这样在断电的时候就不会丢失数据.但是每次提交的一个新的段都fsync 这样操作代价过大.可以使用下面这种更轻量的方式 在内存缓冲区中包含了新文档的 Lucene 索引 Lucene 允许新段被写入和打开--使其包含的文档在未进行一次完整提交时便对搜索可见 缓冲区的内容已经被写入一个可被搜索的段中,但还没有进行提交 这里新段会被先写入到文件系统缓存--这一步代价会比较低,稍后再被刷新到磁盘--这…
分布式文档存储 ES分布式特性 屏蔽了分布式系统的复杂性 集群内的原理 垂直扩容和水平扩容 真正的扩容能力是来自于水平扩容–为集群添加更多的节点,并且将负载压力和稳定性分散到这些节点中 ES集群特点 一个集群拥有相同的cluster.name 配置的节点组成, 它们共同承担数据和负载的压力 主节点负责管理集群的变更例如增加.删除索引,或者增加.删除节点等. 而主节点并不需要涉及到文档级别的变更和搜索等操作 集群健康 1.GET /_cluster/health 返回值中的status 是我们关注…
扩容设计 扩容的单元 一个分片即一个 Lucene 索引 ,一个 Elasticsearch 索引即一系列分片的集合 一个分片即为 扩容的单元 . 一个最小的索引拥有一个分片. 一个只有一个分片的索引无扩容因子 - 如何判断一个请求过来,我的信息在哪个分片上面 shard = hash(routing) % number_of_primary_shards routing 大致是指文档的id 分片预分配 一个分片存在于单个节点, 但一个节点可以持有多个分片 一个拥有两个分片的索引可以利用第二个节…
父子结构 父亲type属性查询子type 的类型 父子结构的查询,可以通过父亲类型的字段,查询出子类型的索引信息 POST /product/_search { "query": { "has_parent": { "parent_type": "base", "query": { "term": { "productId": { "value":…
ElasticSearch 系列文章 1 ES 入门之一 安装ElasticSearcha 2 ES 记录之如何创建一个索引映射 3 ElasticSearch 学习记录之Text keyword 两种基本类型区别 4 ES 入门记录之 match和term查询的区别 5 ElasticSearch 学习记录之ES几种常见的聚合操作 6 ElasticSearch 学习记录之父子结构的查询 7 ElasticSearch 学习记录之ES查询添加排序字段和使用missing或existing字段查…
Elasticsearch学习记录(入门篇) 1. Elasticsearch的请求与结果 请求结构 curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>' VERB HTTP方法:GET, POST, PUT, HEAD, DELETE PROTOCOL http或者https协议(只有在Elasticsearch前面有ht…
Elasticsearch学习记录(分布式的特性) 分布式的特性 我们提到Elasticsearch可以扩展到上百(甚至上千)的服务器来处理PB级的数据.然而我们的例子只给出了一些使用Elasticsearch的例子,并未涉及相关机制.Elasticsearch为分布式而生,而且它的设计隐藏了分布式本身的复杂性. Elasticsearch在分布式概念上做了很大程度上的透明化,在教程中你不需要知道任何关于分布式系统.分片.集群发现或者其他大量的分布式概念.所有的教程你既可以运行在你的笔记本上,也…
中文api 什么是集群? 集群(cluster) >由一个或多个节点组织在一起. >由一个唯一的名字标识,默认为"elasticsearch". 节点(node) >一个节点是集群中的一个服务器. >由一个名字来标识,默认是一个随机的漫威漫画角色的名字. 索引(index) >是ElasticSearch中存储数据的一种逻辑结构. >是拥有几分相似特征的集合. >一个索引由一个名字来标识(全部是小写名字). >ElasticSearch集…
分片内部原理 分片是如何工作的 为什么ES搜索是近实时性的 为什么CRUD 操作也是实时性 ES 是怎么保证更新被持久化时断电也不丢失数据 为什么删除文档不会立即释放空间 refresh, flush, 和 optimize API 作用 使文本可被搜索 倒排索引的结构 词项 文档列表 Term | Doc 1 | Doc 2 | Doc 3 | ... ------------------------------------ brown | X | | X | ... fox | X | X…
最近开发组培训了ElasticSearch,准备开展新项目,我也去凑了下热闹,下面把学习过程记录一下. 一.安装 1.环境需要jdk1.8; 2.下载:http://www.elastic.co/downloads/elasticsearch 3.下载完成后在端终解压,解压命令:tar -vxf elasticsearch-6.2.4.tar 二.启动elasticSearch 进入文件夹:cd elasticsearch-6.2.4 启动命令:sh ./bin/elasticsearch 如下…
GET /searchfilmcomments/searchfilmcomments/_search { "query": { "match_all": {} } } GET /searchfilmcomments/searchfilmcomments/3097 GET /searchfilmcomments/searchfilmcomments/_search { "query": { "match_phrase": { &…
Elasticsearch.XXLJob以及最近的学习记录 前言 在这九月的最后一周,来总结一下最近的学习记录,主要是对于Elasticsearch.XXLjob的初步学习,想着还是多记录点,以便后面去看看,具体的错误认知点在哪,以及找到一些自己的认识点. 后台数据脱敏 一.普通方式 首先该功能是基于Spring Boot项目做的,所以这是一个简单的流程. 具体实现:首先设定一个角色code,比如 "涉密人员" "secret": 通过登录时获取token中的用户名…
本文翻译自Elasticsearch官方指南的Proximity Matching一章. 邻近匹配(Proximity Matching) 使用了TF/IDF的标准全文搜索将文档,或者至少文档中的每一个字段,视作"一大袋的单词"(Big bag of Words).match查询可以告诉我们这个袋子中是否包括了我们的搜索词条,可是这仅仅是一个方面.它不能告诉我们关于单词间关系的不论什么信息. 考虑下面这些句子的差别: Sue ate the alligator. The alligat…
终于有时间记录一下最近学习的知识了,其实除了写下的这些还有很多很多,但懒得一一写下了: ElasticSearch添加修改删除原理:ElasticSearch的倒排索引和文档一旦生成就不允许修改(其实这是lucene的特性,包括下面的也是,毕竟ElasticSearch是基于lucene的),而提供的修改操作其实是新生成了一个文档,并将之前文档中的不进行修改的json保存到新的文档中,之后对老的文档添加一个删除标记(是添加标记,但并不删除,不过你也访问不到),等到某个时刻就会统一删除掉所有的有删…
目录 一.导读 二.福利:账号借用 三._search api 搜索api 3.1.什么是query string search? 3.2.什么是query dsl? 3.3.干货!32个查询案例! 四.聚合分析 4.1.什么是聚合分析? 4.2.干货!15个聚合分析案例 五.7个查询优化技巧 欢迎关注 一.导读 Hi!大家久等了!时隔10天,白日梦的Elasticsearch笔记进阶篇终于甘完了!本次更新依然是干货满满! 下面会和大家分享 32种查询方法.15中聚合方式.7种优化后的查询技巧.…
一.   Elasticsearch的基本概念 term索引词,在elasticsearch中索引词(term)是一个能够被索引的精确值.foo,Foo Foo几个单词是不相同的索引词.索引词(term)是可以通过term查询进行准确的搜索. text文本是一段普通的非结构化文字,通常,文本会被分析称一个个的索引词,存储在elasticsearch的索引库中,为了让文本能够进行搜索,文本字段需要事先进行分析:当对文本中的关键词进行查询的时候,搜索引擎应该根据搜索条件搜索出原文本. analysi…
在ES执行分布式搜索时,分布式搜索操作需要分散到所有相关分片,若一个索引有3个主分片,每个主分片有一个副本分片,那么搜索请求会在这6个分片中随机选择3个分片,这3个分片有可能是主分片也可能是副本分片,然后收集所有分片的查询结果.所以ES的搜索过程分为两个阶段,Query阶段和Fetch阶段:ES有两种搜索类型:query_then_fetch,dfs_query_then_fetch. 1.Query阶段 1)转发请求.在Query阶段客户端向ES节点发送,搜索请求,Coordinate节点接受…
文章目录 初识ElasticSearch 什么是ElasticSearch ElasticSearch特点 ElasticSearch用途 ElasticSearch底层实现 ElasticSearch和Solr的区别 Solr是什么 不同场景时两个的对比 总结 ElasticSearch体系结构 倒排索引 什么是Term Dictionary 什么是Term Index 为什么 Elasticsearch/Lucene 检索可以比 MySQL快 什么是ELK 安装ElasticSearch 安…
本文版权归博客园和作者吴双本人共同所有 转载和爬虫请注明原文地址 www.cnblogs.com/tdws. 本文参考和学习资料 <ES权威指南> 一.基本概念 存储数据到ES中的行为叫做索引,每个索引可以包含多个类型,这些不同的类型存储着多个文档,每个文档有多个属性. 索引 index/indexes相当于传统关系数据库中的数据库,是存储关系型文档的地方. 索引在ES做动词的时候,索引一个文档就是存储一个文档到索引(名词)中,以便被检阅和查询到.类似于insert. 默认下,一个文档中的每个…
到elasticsearch网站下载最新版本的elasticsearch 6.2.1 ? 1 https://www.elastic.co/downloads/elasticsearch 中文文档请参考 ? 1 https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html 英文文档及其Java API使用方法请参考,官方文档比任何博客都可信 ? 1 https://www.elastic.co/guide/en/el…
elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介.Java REST Client.Java Client.Spring Data Elasticsearch) 一.ES Client 简介 1. ES是一个服务,采用C/S结构 2. 回顾 ES的架构 3. ES支持的客户端连接方式 3.1 REST API ,端口 9200 这种连接方式对应于架构图中的RESTful style API这一层,这种客户端的连接…
1. 启动时指定集群和节点的名字./elasticsearch -Ecluster.name=my_cluster_name -Enode.name=my_node_namee.g. ./elasticsearch -d -Ecluster.name=shjCluster -Enode.name=shjNode1 # -d 表示后台启动 用 jps 可以查看是否有 Elasticsearch 的进程 这时,只能通过 localhost 访问 elasticsearch.需要修改下面的配置才能让其…
目录 Solr学习记录:Getting started 1.Solr Tutorial 2. A Quick Overview Solr学习记录:Getting started 本教程使用环境:java8或者更高版本.Solr8.1.centos7 1.Solr Tutorial 1.1简介 本篇将用三个部分具体练习以引领对Solr的快速体验.每个练习将基于前一个练习. 第一个练习:启动solr,创建一个Collection,索引一些基础文档,执行一些搜索. 第二个练习:使用不同数据集,并尝试用…
========== 1.检查ES节点是否正常启动 curl http://192.168.6.16:9200 正常状态: 非正常状态: 1>确保服务是不是正常启动了,端口用的是哪个 2>防火墙是否关闭或者端口是否开放 3>你的curl命令是否有问题,curl命令可能导致服务无法访问,可以尝试重启服务后,在外部浏览器访问URL地址即可.不一定非得用curl 2.cat检测集群健康状况 curl http://192.168.6.16:9200/_cat/health?v 绿色表示一切正常…
目录 ElasticSearch概述 ElasticSearch入门 安装 基本操作 查看es相关信息 索引操作 文档操作 bulk批量API 进阶检索 Search API Query DSL 分词 Rest-Client 安装nginx ElasticSearch概述 官网:https://www.elastic.co/ The Elastic Stack, 包括 Elasticsearch.Kibana.Beats 和 Logstash(也称为 ELK Stack),能够安全可靠地获取任何…
今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了....而这些地方又是蛮难的..比如3.5节Authorizer.PermissionResolver及RolePermissionResolver...可能作者觉得讲清楚要花太多的篇幅涉及太多的类吧.....但是我看起来就很不爽0.0....既然提到了就想弄明白.....不然太纠结了....所以就有了这篇…