首页 > 其他分享 >ES 中的Query与Filter区别

ES 中的Query与Filter区别

时间:2023-09-14 10:46:41浏览次数:46  
标签:filter 查询 Filter 相关性 query Query ES

query与filter的区别

filter:可以简单的理解为Filter就是数据库中的查询语句, 结果是确定的。即满足查询条件就返回, 不满足就不返回.

query:而Query则是文档相关性的查询, 他总会返回数据(一般情况下, 只是匹配度不高), 而且是按照相关性从大到小排序.

总结

1、因此filter的查询是没有评分的,而query的查询是有评分的
2、filter有相应的缓存机制,可以提高查询效率,并且因为filter不计算相关性评分,所以查询速度更快

query与filter如何配合

利用filter的高性能快速过滤大部分数据,再利用query来精确查询所需要的数据。使用query+filter既能保证速度又能保证结果的相关性

一个不太形象的比喻。一个渣男要找对象,那么他的对象就必须是女的, 这个时候如果有一个人群的集合,就需要用Filter把全部的女性找出来;晒完之后,再根据漂亮程度排个序,这里的漂亮程度就可以用Query来表示。身材如何,身高如何,三维,腿,脸等,都可以作为Query的查询维度并给定参数。这时,不管这个集合中的女性是否比外界其他的女性漂亮多少,总会返回给你一个结果。但你是否满意就得另说了。

标签:filter,查询,Filter,相关性,query,Query,ES
From: https://www.cnblogs.com/kkbk/p/17701832.html

相关文章

  • es 排序 聚合统计
    (27条消息)es排序聚合统计_吐血整理:一文看懂ES的R,查询与聚合_weixin_39901439的博客-CSDN博客模糊匹配select*fromcompanywherenamelike'%康康%'GETred/_search{"query":{"match":{"companyname":"康康"}}}上述查询会查......
  • 【腾讯云 Cloud Studio 实战训练营】Cloud Studio 使用分享 及ant-desing-pro 项目创
    【腾讯云CloudStudio实战训练营】CloudStudio使用分享及ant-desing-pro项目创建一、CloudStudio简介及登录1.简介首先附上官网地址,有兴趣的同学可以前去官网查看学习。CloudStudio_在线编程_在线IDE_WebIDE_CloudIDE_VSCode-腾讯云CloudStudio是基于浏览器......
  • Excel导出时文件中没有内容,表格是空的,并且后台抛出了下面的错误:No converter for [cla
    【问题描述】Excel导出时文件中没有内容,表格是空的,并且后台抛出了下面的错误:2023-09-1409:48:59.876WARN7---[http-nio-8096-exec-3].m.m.a.ExceptionHandlerExceptionResolver:Failurein@ExceptionHandlercom.cscecnf.common.exception.GlobalExceptionHandler#exce......
  • Es分词过程
    ES的分词不仅仅发生在文档创建的时候,也发生在搜索的时候查询:读时分词发生在用户查询时,ES会即时地对用户输入的关键词进行分词,分词结果只存在内存中,当查询结束时,分词结果也会随即消失。添加:而写时分词发生在文档写入时,ES会对文档进行分词后,将结果存入倒排索引,该部分最终......
  • 关于 Angular 应用里 Rxjs filter 操作符内的双重感叹号的用法
    看下列这段出现在AngularComponent内的代码:protecteduserCostCenters$:Observable<CostCenter[]>=this.userCostCenterService.getActiveCostCenters().pipe(filter((costCenters)=>!!costCenters));这段Angular组件代码涉及到Observable和RxJS操作......
  • 使用 SAP Business Application Studio Data Editor 生成 Mock Data
    SAPBusinessTechnologyPlatform(BTP)是SAP提供的一种综合性云平台,用于构建、扩展和集成企业应用程序。它为企业提供了一个强大的工具集,以支持数字转型和业务创新。在BTP上,BusinessApplicationStudio(BAS)是一个云集成开发环境,它为开发人员提供了一种轻松创建、管理和......
  • testing-code-测试代码unittest如何编写?
    1---name_function.py函数name_function.py用来获取人名,入参时选择姓、名、中间字三项(middle为可选入参项)1#!usr/bin/env/python23defget_formatted_name(first,last,middle=""):4ifmiddle:5full_name=f"{first}{middle}{last}"6returnf......
  • GZip Servlet Filter
    AGZipServletFiltercanbeusedtoGZipcompresscontentsenttoabrowserfromaJavawebapplication.Thistextwillexplainhowthatworks,andcontainsaGZipServletFilteryoucanuseinyourownJavawebapplications.Ifyoud......
  • combineLatest 操作符在 Spartacus Cost Center 计算逻辑中的一个实际应用
    考虑下面这段Angular代码:this.costCenters$=combineLatest([this.userCostCenters$,this.checkoutCostCenterFacade.getCostCenterState().pipe(filter((state)=>!state.loading),map((state)=>state.data),distinctUntilCh......
  • oracle数据库使用to_timestamp格式化日期数据时,报错: ORA-01821: date format not reco
    今天偶然发现一个问题:我使用的数据库是11.2版本的sql语句:SELECTto_timestamp('2023-09-1315:43:29.943','yyyy-mm-ddhh24:mi:ss.fff')ASmydataFROMdual就会报错,项目出现问题,但很神奇的时使用oracle数据库12版本的就不会报错。 网上查了下,说是毫秒处是6位的,但只显示3位......