51.多条件组合查询

主要知识点:

  • bool组合查询
  • bool和filter组合查询
  • bool,filter嵌套查询
  • 直接用filter查询,并以_score排序

一、bool组合查询

GET /website/article/_search

{

"query": {

"bool": {

"must": [

{

"match": {

"title": "elasticsearch"

}

}

],

"should": [

{

"match": {

"content": "elasticsearch"

}

}

],

"must_not": [

{

"match": {

"author_id": 111

}

}

]

}

}

}

二、bool和filter组合查询

{

"bool": {

"must": { "match": { "title": "how to make millions" }},

"must_not": { "match": { "tag": "spam" }},

"should": [

{ "match": { "tag": "starred" }}

],

"filter": {

"range": { "date": { "gte": "2014-01-01" }}

}

}

}

bool,must,must_not,should,filter

每个子查询都会计算一个document针对它的相关度分数,然后bool综合所有分数,合并为一个分数,filter是不会计算分数

三、bool,filter嵌套查询

{

"bool": {

"must": { "match": { "title": "how to make millions" }},

"must_not": { "match": { "tag": "spam" }},

"should": [

{ "match": { "tag": "starred" }}

],

"filter": {

"bool": {

"must": [

{ "range": { "date": { "gte": "2014-01-01" }}},

{ "range": { "price": { "lte": 29.99 }}}

],

"must_not": [

{ "term": { "category": "ebooks" }}

]

}

}

}

}

四、直接用filter查询,并以_score排序

GET /company/employee/_search

{

"query": {

"constant_score": {

"filter": {

"range": {

"age": {

"gte": 30

}

}

}

}

}

}

原文地址:https://www.cnblogs.com/liuqianli/p/8471681.html

时间: 2024-08-01 13:48:05

51.多条件组合查询的相关文章

多条件组合查询,解决方案记录

三种解决方案 1多条件查询技巧ado.net 2ef组合查询 3dapper组合查询 ef组合查询 http://www.xuebuyuan.com/128577.html http://blog.csdn.net/limlimlim/article/details/8638080 多条件查询--使用dapper命令参数动态拼接出最安全的sql语句 http://www.lanhusoft.com/Article/128.html publicList<MSys_Admin>GetAdminL

菜鸟第一发:jdbc多条件组合查询

注册了园子账号两个月了,今天刚开通博客,博客页面一片空白,对于有强迫症的我来说实在看得难受,刚好小菜鸟我最近做老师布置的课程设计需要组合查询,一开始我傻傻的拼sql语句,界面看起来乱七八糟啊,请教过老师后知道可以将表单获取的数据存进map中,再动态拼接sql语句.测试了一下发现我之前实在是太傻X了,哦马嘎! 这是我第一篇博客,记录最近的小心得,高手勿喷,谢谢. 表单处理 1 <form action="" method="post"> 2 编号:<

SolrJ查询条件组合查询实现——(十六)

DAO 功能:接收service层传递过来的参数,根据参数查询索引库,返回查询结果. 返回值:一个商品列表List<ProductModel>. package cn.qlq.jd.dao; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.sol

PredicateBuilder类(linq多条件组合查询)

PredicateBuilder类如下: public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AND有效,多个AND有效:单个OR无效,多个OR无效:混应时写在AND后的OR有效 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns>

C#-WebForm-★★★LinQ-数据的条件组合查询并进行分页展示(未加各种限定)★★★

前台代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="serv

Elasticsearch判断多列存在、bool条件组合查询示例

and符号判断多列存在:{   "filter": {     "and": [       {         "exists": {           "field": "sid"         }       },       {         "exists": {           "field": "level"        

yii下多条件多表组合查询以及自写ajax分页

多条件组合查询主要用到yii的CDbCriteria,这个类很多oem框架都有,非常好用. 前台查询表单效果是这样的,多个条件组,每个组里放多个input,name为数组.当任何一个复选框被勾选上,发起ajax请求,当然,最顶层的复选框勾上时判断是否有子项,有的话把所有的子项勾选上. 但提交一次请求会向服务端post这样一个表单 其中currentPage是隐藏字段,当分页按钮被点击是这个字段的值会发生变化,并且发起查询请求. 这个表单会提交到如下的action中进行处理 1 <?php 2 3

ADO多条件模糊查询防字符串攻击

多条件组合查询使用字符串拼接TSQL语句来实现 1 void Button1_Click(object sender, EventArgs e) 2 { 3 string text = "select *from car"; //最终TSQL语句 4 string endtext = ""; //组合查询末尾部分 5 int num = 0; //记录当前是第几条查询,为了区别前缀是Where还是and 6 bool ok = false; //判断是否有填写查询

mysql分表后组合查询

<?php //注册到月份表 $sql = "INSERT INTO tbl_view_".date('Ym')."(ip,city,dateline) VALUES('127.0.0.1','CHINA',1562065253)"; $id = DB::query($sql); //查询的时候按时间条件组合查询SQL $start_date = strtotime('2019-01-01 00:00:00'); $end_date = strtotime('