(ElasticSearch02)day80分布式查漏补缺
ElasticSearch02
- 1.DSL查询分类:
- 2.match和multi_match的区别是什么?
- 3.精确查询常见的有哪些?
- 4.相关性算法。
- 5.seo ,根据算法的规则,去优化自己网站的名字等。让搜索往前。
- 6.function score query定义的三要素是什么?
- 7.bool查询有几种逻辑关系?
- 8.需要注意的是,搜索时,参与**打分的字段越多,查询的性能也越差**。
- 9.报错看reason里面的
- 10.elasticsearch支持对搜索结果排序:
- 11.按地图搜索:不需要分数,需要按sort直线距离排序。
- 12.深度分页问题:
- 13.针对深度分页,ES提供了两种解决方案:
- 14.分页查询的常见实现方案以及优缺点:
- 15.搜索关键字高亮:是通过给关键字加一些前缀后缀标签,在通过css来实现的.
- 16.搜all想设置高亮,得设置一下。
- 17.< em >标签是啥。
- 18.idea快捷键:ctrl+alt+m:抽取方法。
- 19.谷歌浏览器不能上传传地理位置。
- 20.前后端数据如何传递???怎么定义返回类型和接收类型。
- 21.matchQuery这个查询和term查询有什么区别
- 22.两个条件排序冲突怎么办???
1.DSL查询分类:
Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括:
- 查询所有:查询出所有数据,一般测试用。例如:match_all。默认展示前十条。
- 全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如:
- match_query
- multi_match_query
- 精确查询:根据精确词条值查找数据,一般是查找keyword、数值、日期、boolean等类型字段。例如:
- ids
- term
- range
- 地理(geo)查询:根据经纬度查询。例如:
- geo_distance
- geo_bounding_box
- 复合(compound)查询:复合查询可以将上述各种查询条件组合起来,合并查询条件。例如:
- bool
- function_score
match分词查询,term精准匹配,range范围查询
2.match和multi_match的区别是什么?
其他字段都利用copy_to复制到了all字段中,字段搜索效果是一样的
- match:根据一个字段查询,all在创建的时候就建立好索引了,搜索效率高。
- multi_match:根据多个字段查询,参与查询字段越多,查询性能越差
3.精确查询常见的有哪些?
- term查询:根据词条精确匹配,一般搜索keyword类型、数值类型、布尔类型、日期类型字段
- range查询:根据数值范围查询,可以是数值、日期的范围
注意:term:不会分词,你写什么就搜什么。
geo查询:km单位必须小写,不然识别不了。
4.相关性算法。
elasticsearch会根据词条和文档的相关度做打分,算法由两种:
- TF-IDF算法(分差比较大,不利于商业竞价排名)
- BM25算法,elasticsearch5.1版本后采用的算法
5.seo ,根据算法的规则,去优化自己网站的名字等。让搜索往前。
6.function score query定义的三要素是什么?
- 过滤条件:哪些文档要加分
- 算分函数:如何计算function score
- 加权方式:function score 与 query score如何运算
7.bool查询有几种逻辑关系?
- must:必须匹配的条件,可以理解为“与”
- should:选择性匹配的条件,可以理解为“或”
- must_not:必须不匹配的条件,不参与打分
- filter:必须匹配的条件,不参与打分
注意:
must,用于关键字查询,会算分,效率低
filter其他过滤条件,不会算分,不太影响效率。
8.需要注意的是,搜索时,参与打分的字段越多,查询的性能也越差。
因此这种多条件查询时,建议这样做:
- 搜索框的关键字搜索,是全文检索查询,使用must查询,参与算分
- 其它过滤条件,采用filter查询。不参与算分
9.报错看reason里面的
10.elasticsearch支持对搜索结果排序:
默认是根据相关度算分(_score)来排序。
可以排序字段类型有:keyword类型、数值类型、地理坐标类型、日期类型等。
注意:只有不能被分词的字段才能排序。
11.按地图搜索:不需要分数,需要按sort直线距离排序。
12.深度分页问题:
elasticsearch 默认情况下只返回top10的数据。
如果要查很多数据,分页会把前面所有的数据查出来,再进行截取。很消耗内存。
13.针对深度分页,ES提供了两种解决方案:
- search after:分页时需要排序,原理是从上一次的排序值开始,查询下一页数据。官方推荐使用的方式。
- scroll:原理将排序后的文档id形成快照,保存在内存。官方已经不推荐使用。
注意:search after不可以返回上一页,查询指针方法,手机端可以用。
14.分页查询的常见实现方案以及优缺点:
from + size
:- 优点:支持随机翻页
- 缺点:深度分页问题,默认查询上限(from + size)是10000
- 场景:百度、京东、谷歌、淘宝这样的随机翻页搜索
after search
:- 优点:没有查询上限(单次查询的size不超过10000)
- 缺点:只能向后逐页查询,不支持随机翻页
- 场景:没有随机翻页需求的搜索,例如手机向下滚动翻页
scroll
:- 优点:没有查询上限(单次查询的size不超过10000)
- 缺点:会有额外内存消耗,并且搜索结果是非实时的
- 场景:海量数据的获取和迁移。从ES7.1开始不推荐,建议用 after search方案。
15.搜索关键字高亮:是通过给关键字加一些前缀后缀标签,在通过css来实现的.
注意:
- 高亮是对关键字高亮,因此搜索条件必须带有关键字,而不能是范围这样的查询。
- 默认情况下,高亮的字段,必须与搜索指定的字段一致,否则无法高亮
- 取出来的结果加高亮,存储的数据不会被改动。
16.搜all想设置高亮,得设置一下。
# 查询字段跟高亮字段不一致
GET /hotel/_search
{"query": {"match": {"all": "如家"}},"highlight": {"fields": {"name": {"pre_tags": "<em>","post_tags": "</em>","require_field_match": "false"}}}
}
17.< em >标签是啥。
- < em >表示一般的强调文本,这个标签具有语义。该标签中的内容在搜索引擎中更受重视,一些语音阅读器也会根据它在阅读时加强语气。
18.idea快捷键:ctrl+alt+m:抽取方法。
19.谷歌浏览器不能上传传地理位置。
20.前后端数据如何传递???怎么定义返回类型和接收类型。
21.matchQuery这个查询和term查询有什么区别
term是keyword类型
分词的用matchQuery
22.两个条件排序冲突怎么办???
比如距离和价格,如何排序。
(ElasticSearch02)day80分布式查漏补缺相关推荐
- 前端面试查漏补缺--(十) 前端鉴权
前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...
- Java 面试知识大全总结:程序员面试的必备,想拿offer来查漏补缺
如果你参加了很多公司的面试,但都没有拿到心目中理想的offer,又或者拿到offer的概率特别低,原因很简单,你可能在技术知识点上有漏洞. Java面试,是对技术知识栈的梳理.考核.复盘 每一次Jav ...
- 算法岗面经整理!查漏补缺
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:阿毛冲冲冲,来源:NewBeeNLP(牛客网) 写在前面 三月面试 ...
- 前端面试查漏补缺--(一) 防抖和节流
前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...
- 计算机三级网络技术查漏补缺
计算机三级网络技术查漏补缺 DHCP(Dynamic Host Configuration Protocol) DMZ(demilitarized zone) 可信计算机评估准则 VLAN 集线器工作 ...
- 2019/5/12 查漏补缺
目录 2019/5/12 查漏补缺 数据类型分为两大类:基本类型和引用类型: java中类的继承关系 关于接口 重载和重写 静态变量 java中的关键字和保留字 数据库操作 实现数据库收回部分权限的操 ...
- Android系统开发和性能优化——查漏补缺【建议收藏】
做了这么久性能相关的工作,也接触了不少模块,说实话要做好性能这一块,真心不容易.为什么这么说? 是因为需要接触的知识实在是太多了, Android 是一个整体,牵一发而动全身,不是说只懂一个模块就可以 ...
- 无效字符 java_Java知识查漏补缺
Java基础知识查漏补缺 单元测试中,Mock对象的存在破坏了面向对象中的封装 mock对象:也成为伪对象,在测试中的利用mock对象来代替真实对象,方便测试的进行. java的封装性:指的是将对象的 ...
- Mysql查漏补缺笔记
目录 查漏补缺笔记2019/05/19 文件格式后缀 丢失修改,脏读,不可重复读 超键,候选键,主键 构S(Stmcture)/完整性I(Integrity)/数据操纵M(Malippulation) ...
最新文章
- cenos 下的一些常用命令及技巧收集篇
- 【unity】与Android Activity交互并调用JAVA代码传递参数
- tensorflow是python自带的吗_python-Tensorflow-没有名为’_pywrap_tensorflow_int...
- 【python教程入门学习】两道关于递归的练习题
- 去掉thinktime查看响应时间的方法
- cmos和ttl_【转】CMOS与TTL电路的区别
- 使用esp8266制作wifi干扰器
- android捕获全局异常,并对异常做出处理
- SAP Client Copy
- FFMpeg视频格式讲解
- 如何判断等保测评机构有资质?符合要求?
- 《墨菲定律》——决策中的学问
- Apsara Clouder云计算专项技能认证:云服务器ECS入门[考试真题]
- 【软件测试】软考-2022软件评测师考试心得
- Day2-go搭载vscode出现的问题
- 游戏精细化营销不靠买量 获客也能踩着夏天的西瓜皮直线上升!
- 计算机的存储器体系结构,计算机体系结构设计 第05章 存储器体系结构设计.pptx...
- sqlite多行插入_在SQLite中插入多行
- 一周内咸鱼疯转2.4W次,最终被所有大厂封杀
- 英伟达凭借GPU与AI笑傲本届CES展会