当前播放: 26 | 搜索的相关性算分
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:概述 (4讲)
01 | 课程介绍
免费
02 | 内容综述及学习建议
免费
03 | Elasticsearch简介及其发展历史
免费
04 | Elastic Stack家族成员及其应用场景
免费
第二章:安装上手 (4讲)
05 | Elasticsearch的安装与简单配置
免费
06 | Kibana的安装与界面快速浏览
07 | 在Docker容器中运行Elasticsearch Kibana和Cerebro
08 | Logstash安装与导入数据
第三章:Elasticsearch入门 (15讲)
09 | 基本概念:索引、文档和REST API
10 | 基本概念:节点、集群、分片及副本
11 | 文档的基本CRUD与批量操作
12 | 倒排索引介绍
13 | 通过Analyzer进行分词
14 | Search API概览
15 | URI Search详解
16 | Request Body与Query DSL简介
17 | Query String&Simple Query String查询
18 | Dynamic Mapping和常见字段类型
19 | 显式Mapping设置与常见参数介绍
20 | 多字段特性及Mapping中配置自定义Analyzer
21 | Index Template和Dynamic Template
22 | Elasticsearch聚合分析简介
23 | 第一部分总结
第四章:深入搜索 (13讲)
24 | 基于词项和基于全文的搜索
25 | 结构化搜索
26 | 搜索的相关性算分
27 | Query&Filtering与多字符串多字段查询
28 | 单字符串多字段查询:Dis Max Query
29 | 单字符串多字段查询:Multi Match
30 | 多语言及中文分词与检索
31 | Space Jam,一次全文搜索的实例
32 | 使用Search Template和Index Alias查询
33 | 综合排序:Function Score Query优化算分
34 | Term&Phrase Suggester
35 | 自动补全与基于上下文的提示
36 | 配置跨集群搜索
第五章:分布式特性及分布式搜索的机制 (8讲)
37 | 集群分布式模型及选主与脑裂问题
38 | 分片与集群的故障转移
39 | 文档分布式存储
40 | 分片及其生命周期
41 | 剖析分布式查询及相关性算分
42 | 排序及Doc Values&Fielddata
43 | 分页与遍历:From, Size, Search After & Scroll API
44 | 处理并发读写操作
第六章:深入聚合分析 (4讲)
45 | Bucket & Metric聚合分析及嵌套聚合
46 | Pipeline聚合分析
47 | 作用范围与排序
48 | 聚合分析的原理及精准度问题
第七章:数据建模 (7讲)
49 | 对象及Nested对象
50 | 文档的父子关系
51 | Update By Query & Reindex API
52 | Ingest Pipeline & Painless Script
53 | Elasticsearch数据建模实例
54 | Elasticsearch数据建模最佳实践
55 | 第二部分总结回顾
第八章:保护你的数据 (3讲)
56 | 集群身份认证与用户鉴权
57 | 集群内部安全通信
58 | 集群与外部间的安全通信
第九章:水平扩展Elasticsearch集群 (6讲)
59 | 常见的集群部署方式
60 | Hot & Warm架构与Shard Filtering
61 | 分片设计及管理
62 | 如何对集群进行容量规划
63 | 在私有云上管理Elasticsearch集群的一些方法
64 | 在公有云上管理与部署Elasticsearch集群
第十章:生产环境中的集群运维 (10讲)
65 | 生产环境常用配置与上线清单
66 | 监控Elasticsearch集群
67 | 诊断集群的潜在问题
68 | 解决集群Yellow与Red的问题
69 | 提升集群写性能
70 | 提升进群读性能
71 | 集群压力测试
72 | 段合并优化及注意事项
73 | 缓存及使用Breaker限制内存使用
74 | 一些运维的相关建议
第十一章:索引生命周期管理 (2讲)
75 | 使用Shrink与Rollover API有效管理时间序列索引
76 | 索引全生命周期管理及工具介绍
第十二章:用Logstash和Beats构建数据管道 (3讲)
77 | Logstash入门及架构介绍
78 | 利用JDBC插件导入数据到Elasticsearch
79 | Beats介绍
第十三章:用Kibana进行数据可视化分析 (4讲)
80 | 使用Index Pattern配置数据
81 | 使用Kibana Discover探索数据
82 | 基本可视化组件介绍
83 | 构建Dashboard
第十四章:探索X-Pack套件 (6讲)
84 | 用Monitoring和Alerting监控Elasticsearch集群
85 | 用APM进行程序性能监控
86 | 用机器学习实现时序数据的异常检测(上)
87 | 用机器学习实现时序数据的异常检测(下)
88 | 用ELK进行日志管理
89 | 用Canvas做数据演示
实战1:电影搜索服务 (3讲)
90 | 项目需求分析及架构设计
91 | 将电影数据导入Elasticsearch
92 | 搭建你的电影搜索服务
实战2:Stackoverflow用户调查问卷分析 (3讲)
93 | 需求分析及架构设计
94 | 数据Extract & Enrichment
95 | 构建Insights Dashboard
备战:Elastic认证 (5讲)
96 | Elastic认证介绍
97 | 考点梳理
98 | 集群数据备份
99 | 基于Java和Elasticseach构建应用
100 | 结束语
26 | 搜索的相关性算分

26 | 搜索的相关性算分

阮一鸣
eBay Pronto平台技术负责人
100讲 约1000分钟16768
单独订阅¥129
2人成团¥89
3
本节摘要
登录 后留言

精选留言(21)

  • zj
    老师问下哈,经典的TF-IDF,TF是表示词数除以文档词数,这个TF最大才为1。为什么说TF无限增加时呢,再怎么大也就才1
    2019-07-23
    4
    2
  • 木木夕Ace
    TF词频的定义好像错了,是不是应该是检索词出现的总次数除以文档的总词数?视频中是检索词出现的总次数除以文档的总字数。假设一个文章就1个词“Administrator”,如果按视频中的公式TF就是1/13了
    2019-07-24
    1
  • earthxuan
    老师,我觉得可以出一个查官方文档思路的教程,有很多细节查起来都非常慢

    作者回复: 细节需要自己看。整体不知道如何定位,可以看一下脑图和学习路径。

    在考试认证环节,我会讲一下文档的大题结构分布,现在我去讲这个,很多概念大家不知道,可能会听的比较晕,反而生成更加多的问题。

    2019-07-16
    1
  • 故事、自己写
    老师请问下汉字模糊查询类似like该怎么用?用了match,query_string等,一个汉字正常,多个汉字就查不出来了。
    2019-12-22
  • godtrue
    查询算分,分越高越好,这个算分比较复杂,粗略理解就是:log(全部文档数/分词所在文档数),分词文档数越少文档越重要
    2019-09-20
  • james
    老师 TF 定义还是不太清楚, 比如一个doc, {"title": "alibaba nb", "content": "why alibaba nb? because ma"}, title 有 2 个 term, content 有5 个
    在搜索(title: alibaba } 的时候, TF 是 1 / 2 还是 1 / 7 ???
    2019-08-27
    2
  • 吴亮
    “的”这个词,在tf*idf中本身就会得分很低,根本就不需要通过停用词去掉。

    作者回复: 文档足够多,的的idf应该不会特别高。致于是否加入停用词,作为es得使用者,需要自己做权衡。没有完全的对错之分。

    2019-08-16
  • 有铭
    老师,这个相关性算分,会随着我扫描的文档的范围而改变吗?我最近遇到一个奇怪的现象,我有一个建好的index库,我用不同的时间范围来过滤的时候,得到的搜索结果有极大的不同,比如说,我搜索2019-07-01 到2019-07-10这个时间范围,给定特定的term,搜索特定字段content(分词器都是预先设定的),并按时间反向排序,此时2019-07-10里的结果集,定义为A,此时,我缩短时间范围,改为2019-07-05 到2019-07-10这个时间范围,此时2019-07-10里的结果集,定义为B。从理论上讲,A和B的结果集应该是完全相同的,但是我实际得到的结果差异很大,有的时候,是A和B的结果集完全不同,A有的B没有,有的时候,是A的结果集和B结果集里排序不同。我完全无法理解这是怎么发生的

    作者回复: 算分是在filter后结果中进行的,你修改了条件,那就会在不同的文档中进行计算

    2019-08-08
  • 黄文韬
    老师,我想问一下,是不是所有的查询默认都是会算分的?只有constant_score就不会算分??感谢,比较困惑

    作者回复: filter content的都不算分,例如 bool查询中的filter和must_not子句

    2019-07-31
  • 卖罐头的小男孩
    我每次看老师视频先看评论,就是看完评论,在评论里也get到了好多技能,然后在看视频。效果非常好。向顶级码农致敬,感谢老师

    作者回复: 谢谢评论区里很多同学的分享,也为你分享的学习方法点👍

    2019-07-26
    1
  • aderm
    问下老师,在上面的搜索elasticsearch示例中,通过执行发现文档2和1 explain显示tf的结果不一样(dl, length of field值结果不一样导致),并没有提到norm(t,d),那这个又该怎么理解呢?
    2019-07-26
  • 超威丶
    老师,请问一个问题:
             如果搜索hello world
             第一条数据为:hello1
             第二条数据为:hello world 666

    这个时候数据展示是第一条还是第二条在最前面?会不会出现第一条数据在最前面,毕竟长度短?

    作者回复: 如果你搜索hello,应该是第一条。搜索hello world,应该第二条,因为会对每个搜索的term算分做相加

    2019-07-25
    1
  • danvid
    老师有相关文献推导bm25的吗,感觉信息检索导论的在定义BIM模型的时候感觉有点模糊,是不是得看英文版
    2019-07-24
  • WL
    请问一下老师demo中最后一个例子是什么意思,有点没太看懂在查询什么, 麻烦老师解释一下.
    POST tmdb/_search
    {
      "_source": ["title","overview"],
      "query":{
        "more_like_this":{
          "fields":[
            "title^10","overview"
            ],
            "like":[{"_id":"14191"}],
            "min_term_freq":1,
            "max_query_terms":12
        }
      }
    }

    作者回复: 这个应该是后面的一个某节课的例子,被我不小心写进去了。你可以暂时忽略,是关于term vector的

    2019-07-20
  • WL
    请问一下老师最后一个例子中的positive,negative,negative_boost各自的作用是啥, 为什么没有positive_boost呢?
    2019-07-20
    1
  • dream
    老师,那个 idf 算法中出现的log,是数学中的求对数吗?那么log的底是多少呢?
    2019-07-18
    1
  • 无笔秀才
    感谢老师的回答,可能我对于抽取es dsl 查询语句中所用到的字段那个问题没有讲清楚。
    我现在已经把所有es查询的语句都写入到 另一个es的index中了。
    如下语句,我想得到 这条语句中 用到 Ext_id,News_title,A_title,Safe_level
    主要目的是想对每个index 观察常用的字段,以及不常用的字段。

    {
      "_source": [
        "Ext_id",
        "News_title"
      ],
      "query":{
            "bool":{
                "must":[
                    {
                        "query_string":{
                            "fields":["A_title","News_title"],
                            "query":"\"安踏\" OR (\"安踏\" AND \"做空\")"
                        }
                    }
                ]
            }
        },
        "aggs": {
          "test_agg": {
            "terms": {
              "field": "Safe_level",
              "size": 10
            }
          }
        },
        "size": 200
    }
    2019-07-18
  • Pasiyu
    老师,go和es的整合,也加一点吧
    2019-07-17
  • 原来只是梦
    老师你好,视频中页面切换能否慢一点?经常是刚说了一个知识点,还没来得及看,就切到下一页了。包括demo也是

    作者回复: 好的,在后续的课程中,我注意一些

    2019-07-17
    2
  • 无笔秀才
    老师请教一下,如何才能获得一个查询语句中 所用到的字段呢?包括source,filter,agg里的。我是想做一些对使用字段的监控。

    作者回复: option 1.你可以打开es的满查询,实现对满的query 实现监控

    option 2: 你可以在你的application中去把相应的语句打到log文件中,然后用filebeat导入es实现查询

    option 3: 你可以通过开发插件的方式实现
    public class SearchRequestActionFilter extends ActionFilter.Simple {

    我建议优先考虑 option 1 和 option 2


    3

    2019-07-16
    1
收起评论
看过的人还看
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

48讲 | 43665 人已学习

拼团 ¥69 原价 ¥99
Kafka核心技术与实战

胡夕  人人贷计算平台部总监,Apache Kafka Contributor

46讲 | 8502 人已学习

拼团 ¥79 原价 ¥99
从0开始学架构

李运华  资深技术专家

59讲 | 39123 人已学习

拼团 ¥69 原价 ¥99
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 39816 人已学习

拼团 ¥69 原价 ¥99