首页 > 其他分享 >Elasticsearch - filter过滤器

Elasticsearch - filter过滤器

时间:2024-04-25 17:22:58浏览次数:21  
标签:查询 filter Elasticsearch query 过滤器 Facebook 官网 desc

通过query查询
eg:查询desc中有"Facebook官网"并且价格在7-20之间的数据
在只查询desc中有"Facebook官网"时, 返回的_score 分别是3.598,0.097

GET /book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "desc": "Facebook官网"
          }
        }
      ]
    }
  }
}


再加上价格条件查询时会发现返回的_score 分别是4.598,1.097

GET /book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "desc": "Facebook官网"
          }
        },
        {
          "range": {
            "price": {
              "gte": 7,
              "lte": 20
            }
          }
        }
      ]
    }
  }
}

想要查询结果不影响到_score,此时需要使用filter过滤,即:在查询desc中有"Facebook官网"得到的结果中再去匹配价格范围的数据

GET /book/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "desc": "Facebook官网"
          }
        }
      ],
      "filter": [
        {
          "range": {
            "price": {
              "gte": 7,
              "lte": 20
            }
          }
        }
      ]
    }
  }
}

返回的结果:

标签:查询,filter,Elasticsearch,query,过滤器,Facebook,官网,desc
From: https://www.cnblogs.com/l-zl/p/18158191

相关文章

  • Netfilter漏洞提权利用(CVE-2023-35001)
    前言Netfilter是一个用于Linux操作系统的网络数据包过滤框架,它提供了一种灵活的方式来管理网络数据包的流动。Netfilter允许系统管理员和开发人员控制数据包在Linux内核中的处理方式,以实现网络安全、网络地址转换(NetworkAddressTranslation,NAT)、数据包过滤等功能。漏洞成因在......
  • blog.admin 查询增加过滤器,添加、删除增加数据审计、统一控制权限操作
    一、查询增加过滤器需求说明:有几张表(医生表、病人表等),有个字段ClinicID都与诊所表主键Id关联。用户登录系统时候,根据所分配的诊所权限,只查看自己诊所的数据。通过查询过滤器,在查询每个表的时候,自动将ClinicID==当前登录用户所属ClinicID,添加上。1、创一个IClinicEntity接口usi......
  • Elasticsearch N-gram分词器介绍 (7)
    一.概述Ngram是一种基于统计语言模型的算法。Ngram基本思想是将文本里面的内容按照字节大小进行滑动窗口操作,形成长度是N的字节片段序列。此时每一个字节片段称为gram。对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特......
  • 【Elasticsearch】在spring环境中 进行es的数据读取
    在Spring环境中进行Elasticsearch(ES)的数据读取,通常会利用SpringDataElasticsearch项目提供的功能。SpringDataElasticsearch提供了高度抽象的Repository接口,允许你以面向对象的方式操作Elasticsearch,而无需直接编写底层的HTTP请求或JSON解析代码。下面是一个简单的示例,演示如......
  • Mysql:canal-deployer:如何阻断canal-client对deployer上的filter过滤条件订阅修改:https
     也算是安全管理上的一个控制点:本来,允许客户端去根据自己的实际需求去服务端订阅自己关心的数据流,是很好的。but,但是,服务端的黑白名单过滤,尤其是白名单的filter条件会被客户端的最新订阅的过滤条件给覆盖!!!这算是bug吗?上游服务端怎么显得那么没地位呢!!!??? #===================......
  • Elasticsearch 所有内置分词器介绍(6)
    一.概述Tokenizer分词器接收字符流(es的text类型),将其分解为单个term(通常是单个单词),然后输出标记流。分词器除了分解,还负责记录以下内容:1)记录每个单词(term)的顺序或位置(用于”phrase短语“和单词邻近性查询)2)term原始单词的开始和结束字符偏移量(使用......
  • Python字符串过滤器:正则表达式Regular Expression
    一、什么是正则表达式正则表达式是按照正确的既定规则、一种全语言类型Python、Java、JavaScript、PHP通用的表达式。用途:(1)根据规则抓取数据:配合爬虫、根据规则在文本中提取数据(2)根据规则验证数据:验证手机号、验证邮箱、验证身份证二、如何在Python中使用正则表达式在Python......
  • docker-compose 安装部署ElasticSearch 和 Kibana
    项目需要搭建es环境,踩了一些坑,记录下首选还是通过docker搭建,而通过docker最佳的部署方式就是dockercompose1.docker-compose.ymlversion:"3.1"#服务配置services:elasticsearch:container_name:es01image:elasticsearch:8.12.2restart:unless-stopp......
  • [986] Filter rows by containing a particular word in Pandas
    In Pandas,youcanfilterrowsbasedonwhetheraspecificcolumncontainsaparticularwordorsubstring.Hereareafewwaystoachievethis:Using str.contains():Tofilterrowswhereaspecificcolumn(let’ssay‘ids’)containstheword“ball,”......
  • [985] Filter by Column Value & Multiple Conditions in Pandas dataframe
    ref:WaystofilterPandasDataFramebycolumnvaluesFilterbyColumnValue:Toselectrowsbasedonaspecificcolumnvalue,usetheindexchainmethod.Forexample,tofilterrowswheresalesareover300:Pythongreater_than=df[df['Sales&#......