837
阿里云
搜索__性能篇_最佳实践_开放-阿里云
这里主要介绍在实际查询过程中可能遇到的各种情况,及可以优化的方法。当您发现自己的搜索效果不满意或者不知道该如何实现,请联系我们。
搜索查询的效果主要跟query关键词中命中的文档数有关,命中的文档数越多,系统要进行的计算就越多,那么耗时就会越高。所以优化的一个重要手段就是尽量降低query召回的文档数。
- 查询需要带上索引名(应用结构中的“索引到”字段),否则将默认取default索引,如果没有default,则直接报错无结果。
query='mp3'相当于query=default:'mp3'
- 查询关键词必须带上单引号,否则很可能会报错无结果。
Error: query=default:mp3
Right: query=default:'mp3'
- 如果查询词中包含’,则需要转义或者去掉;2,查询词的最后一个字符不能是’’,否则会被当成转义符从而查询报错,如果要搜索’’,需要对’’进行转义。
query=default:'北京大学',召回同时包含“北京”和“大学”的文档;
query=default:'abc's efg'会解析失败无结果,需要修改为'abc's efg';
query=default:'abc',会查询报错无结果,对'进行了转义,到时引擎解析失败;
- 对于只用来做过滤筛选的需求,建议尽量将过滤字段建索引,通过query子句来查询,可以提高性能。
query=user_id:'123'&&filter=type_id=1,改写为query=user_id:'123' AND type_id:'1'。
- 如果某些query召回量非常大,那么检索的效果低很多,这时候放在filter中可能效果更好。
query=status:'1' AND user_id:'123' //符合user_id=123的有100条记录,符合status=1的有5kw文档,
改写为
query=user_id:'123'&&filter=status=1 //这样召回量会小很多,通过filter来过滤会更快。
- 在一些情况下,会查询近一个月的数据,目前系统不支持query的range查询,如果数据量较大,性能比较差,可以考虑增加一个月份字段,适当降低query的召回文档量,可以有效提高查询效率。
query=user_id:'123'&&filter=time>"2016-09-16" //符合user_id=123的有5千万数据,但是根据时间过滤完只有1千。query召回量太大,很容易超时
可以改为:
query=user_id:'123' AND (month:'201610' OR month:'201609')&&filter=time>"2016-09-16" //这样符合user_id:'123' AND (month:'201610' OR month:'201609')的只有2000,再做具体时间过滤效率会高很多。
- 查询到具体的文档后,引擎会去获取实际要返回的结果数据,如果结果数据较大,那么消耗的时间也会越大。这时,可以从哪个方面入手:1,降低hit数,一般翻页结果为20个;2,修改默认展示字段或者fetch_fields,仅返回搜索结果展示中需要的字段即可。
最后更新:2016-11-23 17:16:06
上一篇:
数据推送__性能篇_最佳实践_开放搜索-阿里云
下一篇:
开源建站工具对接OpenSearch__工具篇_最佳实践_开放搜索-阿里云
步骤 3-1:创建和设置报警控件__创建监控任务_用户指南_业务实时监控服务 ARMS-阿里云
创建事务__脚本开发_Lite用户使用手册_性能测试-阿里云
控制台使用帮助__使用手册_媒体转码-阿里云
进程监控__主机监控_用户指南_云监控-阿里云
CC防护规则-正常与紧急__功能说明_Web 应用防火墙-阿里云
CDN使用JAVA API刷新缓存方法__运维技术分享_技术运维问题_CDN-阿里云
配置示例__EDAS 中的 Dubbo 开发_开发者指南_企业级分布式应用服务 EDAS-阿里云
消费者订阅服务__服务开发_开发者指南_企业级分布式应用服务 EDAS-阿里云
虚拟主机被搜索引擎爬虫访问耗费大量流量解决方法___安全问题_技术分享_云虚机主机-阿里云
用户认证__安全指南_大数据计算服务-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云