随笔分类 - ElasticSearch
1
ElasticSearch读书笔记
摘要:1.为什么要重建索引? 总结,一个type下的mapping中的filed不能被修改,所以如果需要修改,则需要重建索引 2.怎么zero time重建索引? 一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,
阅读全文
摘要:1.什么是type? type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器field的value,在底层的lucene中建立索引的时候,全部是opaque bytes类型,不区分类型的。 lucene是没有type的概念的
阅读全文
摘要:1、默认的分词器 standard 分词器 standard tokenizer:以单词边界进行切分standard token filter:什么都不做lowercase token filter:将所有字母转换为小写stop token filer(默认被禁用):移除停用词,比如a the it
阅读全文
摘要:1.为什么要使用scroll? 如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批的查,直到所有数据都查询完处理完 2.原理 使用scoll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以此类推,直到搜索出全部的数据来scoll搜索会在第一次搜索
阅读全文
摘要:1.区别 搜索的时候,要依靠倒排索引;排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序,所谓的正排索引,其实就是doc values 在建立索引的时候,一方面会建立倒排索引,以供搜索用;一方面会建立正排索引,也就是doc values,以供排序,聚合,过滤等操作使
阅读全文
摘要:这边math拼写错误,相对应的返回: 字段拼写错误: 一般用在那种特别复杂庞大的搜索下,比如你一下子写了上百行的搜索,这个时候可以先用validate api去验证一下,搜索是否合法
阅读全文
摘要:1、什么是分词器 作用:切分词语,normalization(提升recall召回率),如给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换),分词器 recall,召回率:搜索的时候,增加能够搜索到的结果的数量 3个功能: 一
阅读全文
摘要:现在有两条document: 1.分词,初步的倒排索引的建立(*代表有,空代表无): 这边演示了一下倒排索引最简单的建立的一个过程 假设进行搜索:mother like little dog,结果是:不可能有任何结果 过程是将mother like little dog进行一个个拆分,然后进行匹配,
阅读全文
摘要:1、分页搜索 语法: 实际操作: 查看共有5条数据: 我们假设将这7条数据分成3页,每一页是3条数据,来实验一下这个分页搜索的效果 第一页: 第二页: 第三页: 2、深度搜索deep paging的性能问题
阅读全文
摘要:语法:timeout=10ms,timeout=1s,timeout=1m timeout:默认无timeout,latency平衡completeness,手动指定timeout,timeout查询执行机制
阅读全文
摘要:bulk api的语法 正常的语法: 异常的语法: 1、bulk中的每个操作都可能要转发到不同的node的shard去执行 2、如果采用比较良好的json数组格式 允许任意的换行,整个可读性非常棒,读起来很爽,es拿到那种标准格式的json串以后,要按照下述流程去进行处理 (1)将json数组解析为
阅读全文
摘要:先查看一条数据: 1、_index元数据 (1)代表一个document存放在哪个index中 (2)类似的数据放在一个索引,非类似的数据放不同索引:product index(包含了所有的商品),sales index(包含了所有的商品销售数据),inventory index(包含了所有库存相关
阅读全文
摘要:1、bulk语法 bulk api对json的语法,有严格的要求,每个json串不能换行,只能放一行,同时一个json串和一个json串之间,必须有一个换行 如果格式是这样: 结果: 如果格式是这样: 结果: bulk操作中,任意一个操作失败,是不会影响其他的操作的,但是在返回结果里,会告诉你异常日
阅读全文
摘要:1、批量查询的好处 就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的如果进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减100倍 2、mget的语法 (1)一条一条的查询 GET /test_index/test_typ
阅读全文
摘要:一、基于version进行乐观锁并发控制 1)、查看一条document 2)、模拟多并发下,利用version进行更新 同时带上数据的版本号,确保说,es中的数据的版本号,跟客户端中的数据的版本号是相同的,才能修改 二、基于external version进行乐观锁并发控制 es提供了一个feat
阅读全文
摘要:一、关于横向扩容 (1)primary&replica自动负载均衡,6个shard,3 primary,3 replica(2)每个node有更少的shard,IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好(3)扩容的极限,6个shard(3 primary,3 re
阅读全文
摘要:一. kibana安装 1.到官网或是用brew下载kibana 安装包,这边我们选择在官网下载对应的安装包 https://www.elastic.co/cn/downloads/kibana 2.解压缩到对应的目录下,我们解压缩到了 /usr/local/kibana-6.5.2-darwin-
阅读全文
摘要:1.首先要安装jdk 2.到官网或是用brew下载ElasticSearch 安装包,这边我们选择在官网下载对应的安装包 https://www.elastic.co/cn/downloads/elasticsearch 3.解压缩到对应的目录下,我们解压缩到了 /usr/local/elastic
阅读全文
摘要:elasticsearch核心概念 (1)Near Realtime(NRT):近实时,两个意思,从写入数据到数据可以被搜索到有一个小延迟(大概1秒);基于es执行搜索和分析可以达到秒级 (2)Cluster:集群,包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是elasticse
阅读全文
摘要:全文检索 全文检索,即倒排索引。
阅读全文
1
浙公网安备 33010602011771号