随笔分类 -  Elasticsearch

摘要:我们先写入三条演示数据 PUT /product/book/1 { "post_date": "2020-01-01", "title": "my first book" } PUT /product/book/2 { "post_date": "2020-01-02", "title": "my 阅读全文
posted @ 2020-09-04 10:07 百里喻初原 阅读(196) 评论(0) 推荐(0)
摘要:1、什么是分词器 分词器是在建立倒排索引前的一系列操作,目的是提升召回率,增加能够搜索到的结果的数量 (1) character filter:分词前的预处理,比如过滤html标签,特殊符号转换成英文单词 <span>hello<span> --> hello I&you --> I and you 阅读全文
posted @ 2020-09-02 10:58 百里喻初原 阅读(168) 评论(0) 推荐(0)
摘要:我们看看下面2个doc是怎么建立倒排索引的 doc1:I really liked my small dogs, and I think my mom also liked them. doc2:He never liked any dogs, so I hope that my mom will 阅读全文
posted @ 2020-09-01 15:30 百里喻初原 阅读(166) 评论(0) 推荐(0)
摘要:1、exact value(精确匹配) 对"2020-01-01"进行精确搜索的时候,必须用关键字2020-01-01才能搜索出来,如果搜关键字01,是搜索不出来的 2、full text(全文索引) (1) 对"2020-01-01"进行全文索引时,搜关键字2017或01都是可以搜索出来的 (2) 阅读全文
posted @ 2020-09-01 14:16 百里喻初原 阅读(364) 评论(0) 推荐(0)
摘要:1、query string语法 #1和2效果是一样的,查询test_type下test_field字段中包含test关键字的document (1) GET /test_index/test_type/_search?q=test_field:test (2) GET /test_index/te 阅读全文
posted @ 2020-09-01 10:53 百里喻初原 阅读(325) 评论(0) 推荐(0)
摘要:1、分页搜索 语法 #搜索第1000页的10条数据 GET /test_index/test_type/_search?from=10000&size=10 2、什么是deep paging? 简单来说,就是分页搜索的特别深。比如有个index有3个primary shard,共60000条数据,每 阅读全文
posted @ 2020-08-31 14:58 百里喻初原 阅读(151) 评论(0) 推荐(0)
摘要:所谓multi-index和multi-type搜索模式就是我们可以一次性搜索多个index和多个type下的数据 (1) /_search:所有索引,所有type下的所有数据都搜索出来 (2) /index1/_search:指定一个index,搜索其下所有type的数据 (3) /index1, 阅读全文
posted @ 2020-08-17 17:34 百里喻初原 阅读(188) 评论(0) 推荐(0)
摘要:1、搜索结果分析 GET /_search took:整个搜索请求花费了1毫秒 hits.total:本次搜索,返回了1条结果 hits.max_score:本次搜索的所有结果中,最大的相关度分数是多少 hits.hits:默认查询前10条数据,完整数据,按_score降序排序 shards:这次查 阅读全文
posted @ 2020-08-17 16:53 百里喻初原 阅读(437) 评论(0) 推荐(0)
摘要:1、bulk的执行过程 一次bulk请求可能包含了多个增删改document的操作,因此bulk的每个操作都可能要转发到不同的es node的primary shard去执行,这个过程就包含了json数据的传输。 2、假如采用比较良好的json数组格式 假如使用比较良好的json数组格式,会是这个样 阅读全文
posted @ 2020-08-17 15:54 百里喻初原 阅读(242) 评论(0) 推荐(0)
摘要:简单说就是primary shard写完,会同步到replica shard上,两者最终可能会出现不一致的情况。那es是如何确定主副分片的写一致性的呢? 1、es5.0前,采用写入前检查存活shard的方式 (1)consistency 我们在发送任何一个增删改请求的时候,比如说put /produ 阅读全文
posted @ 2020-08-05 17:26 百里喻初原 阅读(578) 评论(1) 推荐(0)
摘要:1、document路由到shard上是什么意思? 我们知道,1个index的数据会被分配到多个shard中,1个document只会被放到其中1个primary shard中。 也就是说,当我们创建document的时候,es就要决定这个document是放在这个index的哪个shard上,这个 阅读全文
posted @ 2020-08-03 17:09 百里喻初原 阅读(177) 评论(0) 推荐(0)
摘要:使用bulk语法可以进行批量增删改操作,bulk语法有严格的要求,每个json串不能换行,两个json串必须换行,下面演示下 #删除 POST /_bulk { "delete": { "_index": "test_index", "_type": "test_type", "_id": "1" 阅读全文
posted @ 2020-08-03 14:38 百里喻初原 阅读(392) 评论(0) 推荐(0)
摘要:1、为什么要批量查询 假如我们要查100个document,一个一个id查的话,需要发送100次网络请求,占用网络开销,用mget进行批量查询的话,只要发送1次网络请求,网络开销减小100倍。 2、mget的语法 (1) 同一index同一type GET /test_index/test_type 阅读全文
posted @ 2020-08-03 10:36 百里喻初原 阅读(542) 评论(0) 推荐(0)
摘要:1、什么是并发冲突 举个例子,我跟你在淘宝在同一时间下单买了同一本书,两个线程同时去es扣这本书的库存,库存有100本书,正常情况扣完库存后应该变成98本,但如果两个线程并发冲突,就会变成这样 可以看到库存的值变成了99本,与我们期望中的98本不符。这一现象也叫超卖,对数据库的库存扣减的时候也会出现 阅读全文
posted @ 2020-07-31 22:21 百里喻初原 阅读(1041) 评论(0) 推荐(0)
摘要:1、什么是partial update? 我们用document的全量替换来对比一下partial update。全量替换时,我们需要把document里的所有field给到es进行替换,而partial update只需要把document id和需要更新的部分字段给到es就行,两种方式对docu 阅读全文
posted @ 2020-07-31 22:20 百里喻初原 阅读(394) 评论(0) 推荐(0)
摘要:1、document的核心元数据 我们针对一次查询结果来解析它的元数据 (1) _index元数据 <1> 1个index等同于1张数据库表,index名称等同于表名 <2> index名称必须小写,不能用下划线开头,不能包含逗号 (2) _type元数据 <1> 1个type等同于数据库表里的"类 阅读全文
posted @ 2020-07-30 15:20 百里喻初原 阅读(324) 评论(0) 推荐(0)
摘要:1、index、document和shard的关系 (1) 1个index的多个document会被均匀分配到多个shard;每个shard都是一个最小工作单元,承载1个index的部分document。 (2) 1个document只存在于某1个primary shard以及其对应的replica 阅读全文
posted @ 2020-07-28 17:57 百里喻初原 阅读(1014) 评论(0) 推荐(0)
摘要:演示前先往es写入三条商品数据用来演示查询 PUT /product/book/1 { "product_name": "yuwen shu", "price": 20, "all_tags": ["bad","ugly"] } PUT /product/book/2 { "product_name 阅读全文
posted @ 2020-07-27 15:40 百里喻初原 阅读(458) 评论(0) 推荐(0)
摘要:演示前先往es写入两条商品数据,接下来用各种查询方式来演示 PUT /product/book/1 { "product_name": "yuwen shu", "price": 20, "tags": ["boring","bad"] } PUT /product/book/2 { "produc 阅读全文
posted @ 2020-07-21 17:30 百里喻初原 阅读(781) 评论(0) 推荐(0)
摘要:下面以一本书为1个document为例演示下es的CRUD 1、新增商品:新增document PUT /product/book/1 { "product_name" : "追风筝的人", "price" : 10, "tags": [ "忠诚", "赎罪" ] } 第一次新增document时e 阅读全文
posted @ 2020-07-14 19:43 百里喻初原 阅读(191) 评论(0) 推荐(0)