Dynamic Template
摘要:将字符串类型映射为keyword PUT test_template { "mappings": { "dynamic_templates":[ { "strings":{ "match_mapping_type":"string", "mapping":{ "type":"keyword" } }
阅读全文
posted @
2021-10-12 08:21
溪水静幽
阅读(90)
推荐(0)
post_filter
摘要:post_filter 后置过滤:在查询命中文档、完成聚合后,再对命中的文档进行过滤。 要在一次查询中查询品牌为gucci且颜色为红色的shirts,同时还要得到gucci品牌各颜色的shirts的分面统计 PUT /shirts { "mappings":{ "properties": { "br
阅读全文
posted @
2021-10-12 08:21
溪水静幽
阅读(93)
推荐(0)
12 基于multi_match + best fields语法实现dis_max+tie_breaker
摘要:示例: GET /forum/article/_search { "query": { "dis_max": { "queries": [ { "match": { "title": { "query": "java beginner", "minimum_should_match": "50%",
阅读全文
posted @
2021-10-12 08:20
溪水静幽
阅读(42)
推荐(0)
11 基于tie_breaker参数优化dis_max搜索效果
摘要:tie_breaker 使用tie_breaker将其他query的分数也考虑进去 tie_breaker参数的意义,将其他query的分数,乘以tie_breaker,然后综合与最高分数的那个query的分数,综合在一起进行计算,除了取最高分以外,还会考虑其他的query的分数。tie_break
阅读全文
posted @
2021-10-12 08:19
溪水静幽
阅读(53)
推荐(0)
elasticsearch7.x 乐观锁
摘要:ES中的文档是不可变更的。如果更新一个文档,会将文档标记为删除,同时增加一个全新的文档,与此同时文档的 version 字段也会加 1。 ES 7.x 之后,对应的 version 让然保留着,但是内部乐观锁版本控制是通过另外两个新引入的字段来控制的,分别是:seq_no 和 primary_ter
阅读全文
posted @
2021-10-10 11:21
溪水静幽
阅读(748)
推荐(0)
Path Hierarchy Tokenizer对文件系统进行数据建模以及文件搜索
摘要:模拟:文件系统数据构造 PUT /filesystem { "settings": { "analysis": { "analyzer": { "paths":{ "tokenizer":"path_hierarchy" } } } } } 测试 POST /filesystem/_analyze
阅读全文
posted @
2021-09-25 08:09
溪水静幽
阅读(71)
推荐(0)
Top Hits Aggregation
摘要:需求: 对每个用户发表的博客进行分组 造数据 PUT /blogs/_doc/2 { "title":"learn words", "content":"learning elasticsearch", "userInfo":{ "userId":2, "username":"jack" } } P
阅读全文
posted @
2021-09-25 07:25
溪水静幽
阅读(60)
推荐(0)
通过【应用层join】或者【数据冗余】实现实现用户与博客的关联
摘要:通过应用层join实现用户与博客的关联 构造用户与博客数据 PUT /users/_doc/1 { "name":"夏明", "email":"xiaming@qq.com", "birthday":"2012-01-01" } PUT /blogs/_doc/1 { "title":"盛夏的果实"
阅读全文
posted @
2021-09-23 08:23
溪水静幽
阅读(59)
推荐(0)
Collect Model_bucket优化机制:深度优先、广度优先
摘要:举个例子:每个演员的每个电影的评论 每个演员的评论的数量 --> 每个演员的每个电影的评论的数量 评论数量排名前10个的演员 --> 每个演员的电影取到评论数量排名前5的电影 { "aggs" : { "actors" : { "terms" : { "field" : "actors", "siz
阅读全文
posted @
2021-09-21 10:39
溪水静幽
阅读(43)
推荐(0)
fielddata内存控制
摘要:fielddata核心原理 fielddata加载到内存的过程是lazy加载的,对一个analzyed field执行聚合时,才会加载,而且是field-level加载的.一个index的一个field,所有doc都会被加载,而不是少数doc,不是index-time创建,是query-time创建
阅读全文
posted @
2021-09-21 10:26
溪水静幽
阅读(471)
推荐(0)
深入聚合数据分析之text field聚合以及fielddata原理
摘要:对分词的field进行aggregation异常 GET /user/_search { "size":0, "aggs": { "group_by_name": { "terms": { "field":"username" } } } } 异常信息 "type": "illegal_argume
阅读全文
posted @
2021-09-20 09:53
溪水静幽
阅读(124)
推荐(0)
Percentiles占比百分位对应的值统计
摘要:对指定字段(脚本)的值按从小到大累计每个值对应的文档数的占比(占所有命中文档数的百分比),返回指定占比比例对应的值。默认返回[ 1, 5, 25, 50, 75, 95, 99 ]分位上的值。如下中间的结果,可以理解为:占比为50%的文档的age值 <= 31,或反过来:age<=31的文档数占总命
阅读全文
posted @
2021-09-15 22:48
溪水静幽
阅读(230)
推荐(0)
Cardinality Aggs
摘要:es中的去重,cartinality metric,对每个bucket中的指定的field进行去重,取去重后的count,类似于count(distcint) 需求:每月出生后,薪水的统计 GET /user/_search { "aggs":{ "month":{ "date_histogram"
阅读全文
posted @
2021-09-12 08:14
溪水静幽
阅读(75)
推荐(0)
bucket filter
摘要:需求:统计名字wang学生的从出生到现在的平均收入 GET /user/_search { "query":{ "term":{ "username": "wang" } }, "aggs":{ "recent_720d":{ "filter":{ "range":{ "birthday":{ "g
阅读全文
posted @
2021-09-07 08:25
溪水静幽
阅读(49)
推荐(0)
过滤+聚合+排序
摘要:需求:统计年龄大于20岁的收入的平均值 GET /user/_search { "query":{ "range":{ "age":{ "gte":20 } } }, "aggs": { "avg_salary": { "avg": { "field":"salary" } } }, "size":
阅读全文
posted @
2021-09-07 08:13
溪水静幽
阅读(23)
推荐(0)
global bucket
摘要:统计单个年龄26岁与所有26岁收入的对比 GET /user/_search { "query":{ "term":{ "age":"26" } }, "aggs":{ "single_age_avg_salary":{ "avg":{ "field":"salary" } }, "all":{ "
阅读全文
posted @
2021-09-06 08:32
溪水静幽
阅读(45)
推荐(0)
date_histogram
摘要:date histogram,即按照我们指定的某个date类型的日期field,以及日期interval,按照一定的日期间隔,去划分bucket,date interval = 1m,1个月 2017-01-01~2017-01-31,就是一个bucket 2017-02-01~2017-02-28
阅读全文
posted @
2021-09-01 08:27
溪水静幽
阅读(835)
推荐(0)
ik分词器
摘要:ik_max_word: 会将文本做最细粒度的拆分,比如会将“中华人民共和国国歌”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民,人,民,共和国,共和,和,国国,国歌”,会穷尽各种可能的组合; ik_smart: 会做最粗粒度的拆分,会将“中华人民共和国国歌”拆分为“中华人民共和国,
阅读全文
posted @
2021-08-28 12:01
溪水静幽
阅读(28)
推荐(0)
26、深度探秘搜索技术之function_score自定义相关度分数算法
摘要:自定义一个function_score函数,自己将某个field的值,跟es内置算出来的分数进行运算,然后由自己指定的field来进行分数的增强 需求: 看帖子的人越多,那么帖子的分数就越高 先给所有的帖子数据增加follower数量 , 将对帖子搜索得到的分数,跟follower_num进行运算,
阅读全文
posted @
2021-08-22 08:33
溪水静幽
阅读(130)
推荐(0)
25、深度探秘搜索技术之四种常见的相关度分数优化方法
摘要:query-time boost GET /forum/_search { "query":{ "bool":{ "should":[ { "match":{ "title":{ "query":"java spark", "boost":2 } } }, { "match":{ "content"
阅读全文
posted @
2021-08-21 21:49
溪水静幽
阅读(36)
推荐(0)