创建索引和数据准备

PUT course
PUT course/_mapping/course
{ "properties": {
"course":{
"type": "nested"
, "properties": {
"key1": {
"type": "text",
"analyzer": "ik_max_word"
},
"key2": {
"type": "text",
"analyzer": "ik_max_word"
},
"course_score": {
"type": "long"
}
}
},
"course_name": {
"type": "text"
, "analyzer": "ik_max_word"
},
"course_id": {
"type": "long"
}
}
}
PUT course/course/1
{
"course":[
{
"key1":"语文,高一,高二,高三",
"key2":"高考作文",
"course_score":15
},
{
"key1":",语文,高二",
"key2":"语文高考",
"course_score":9
},
{
"key1":",努力,学习",
"key2":"高考",
"course_score":9
}
],
"course_name":"语文高考基础题满分策略",
"course_id":13
} PUT course/course/2
{
"course":[
{
"key1":",其他,高一,高二,高三",
"key2":"鲁林希",
"course_score":21
},
{
"key1":",其他,高一",
"key2":"高考",
"course_score":11
},
{
"key1":",其他,高二,高三",
"key2":"高考",
"course_score":2
}
],
"course_name":"师兄师姐来帮忙-方法篇",
"course_id":220
} PUT course/course/3
{
"course":[
{
"key1":",其他,高一,高三",
"key2":"高考",
"course_score":21
}
],
"course_name":"师兄师姐来帮忙-自招全流程",
"course_id":221
}

查询语句实例

GET course/course/_search
{ "query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"nested": {
"path": "course",
"score_mode": "sum",
"query": {
"function_score": {
"query": {
"bool": {
"must": [
{
"match": {
"course.key1": "高一,高二,高三"
}
},
{
"match": {
"course.key2": "高考"
}
}
]
}
},
"script_score": {
"script": "doc['course.course_score'].value"
}
}
}
}
}
]
}
}
, "script_score": {
"script": "_score"
}
}
}
}

一个Elasticsearch嵌套nested查询的实例的更多相关文章

  1. ElasticSearch学习问题记录——nested查询不到数据

    通过代码创建了索引名称为demoindex,索引类型为school,以下是索引类型的数据映射结构: { "state": "open", "setti ...

  2. ElasticSearch 嵌套映射和过滤器及查询

    ElasticSearch - 嵌套映射和过滤器 Because nested objects are indexed as separate hidden documents, we can’t q ...

  3. python查询elasticsearch(Query DSL) 实例

    import datetime import sys import getopt import hashlib from elasticsearch import Elasticsearch &quo ...

  4. Elasticsearch文档查询

    简单数据集 到目前为止,已经了解了基本知识,现在我们尝试用更逼真的数据集,这儿已经准备好了一份虚构的JSON,关于客户银行账户信息的.每个文档的结构如下: { , , "firstname& ...

  5. elasticsearch 嵌套对象之嵌套类型

    nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询. 1. 对象数组如 ...

  6. 利用kibana插件对Elasticsearch进行bool查询

    #bool查询#老版本的filtered查询已经被bool代替#用 bool包括 must should must_not filter来完成 ,格式如下:#bool:{#  "filter ...

  7. ​《数据库系统概念》4-DDL、集合运算、嵌套子查询

    一.DDLa) SQL Data DefinitionSQL的基本数据类型有char(n).varchar(n).int.smallint.numeric(p,d).real,double preci ...

  8. SQL相关子查询是什么?和嵌套子查询有什么区别?

    目录 两者的各种叫法 相关子查询MySQL解释 相关子查询Wikipedia解释 相关子查询执行步骤拆解 相关子查询和嵌套查询的区别 参考资料 两者的各种叫法 相关子查询叫做:Correlated S ...

  9. elasticsearch GIS空间查询问题解决

    在GIS行业的应用越来越广泛,GIS最常用根据区域进行空间数据查询     我定义了两个方法,一起来看一下: /** * geodistance filter * 一个过滤器来过滤基于一个特定的距离从 ...

随机推荐

  1. tfs+git

    TFS+GIT 一:背景介绍 技术团队的代码管理工具原来使用的是纯TFS方案,使用两年后发现一些问题:体积太大,每次新建一个分支需要本地下载一份代码:操作不便,功能分支的建立.合并不方便,本地有很多同 ...

  2. 【BZOJ1264】[AHOI2006]基因匹配Match DP+树状数组

    [BZOJ1264][AHOI2006]基因匹配Match Description 基因匹配(match) 卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而 ...

  3. 巨蟒python全栈开发数据库攻略4:多表操作&Navicat&pymysql

    1.多表查询 2.连表补充 3.boss工具=>Navicat 4.索引加速寻找工具=>everything 5.pymysql 6.pymysql初识 7.pymysql的各个方法

  4. cocopods

    一.什么是CocoaPods 1.为什么需要CocoaPods 在进行iOS开发的时候,总免不了使用第三方的开源库,比如SBJson.AFNetworking.Reachability等等.使用这些库 ...

  5. cmake window下 sh.exe was found in your PATH, here

    在window下 mingw环境下 用 camke 编译Cpp程序 CMake Error at D:/Program Files/CMake/share/cmake-3.8/Modules/CMak ...

  6. MAC OSX--docker

    http://www.cnblogs.com/yjmyzz/p/docker-install-tutorial.html http://www.cnblogs.com/yjmyzz/p/docker- ...

  7. 初探runtime

    1 简介 runtime,也叫它运行时系统.它是用c写的一套API,oc代码底层实现全都依赖它.我们说它是运行时,是相比编译,在程序编译完成之后,一些对象可通过runtime来干一些在编译时看似不可能 ...

  8. pandas 如何判断指定列是否(全部)为NaN(空值)

    判断某列是否有NaN df['$open'].isnull().any() # 判断open这一列列是否有 NaN 判断某列是否全部为NaN df['$open'].isnull().all() # ...

  9. Notepad++ 更换主题

    到Textmate Theme Directory下载主题: 用文本编辑器把它打开,复制所有代码,贴到theme converter page里,然后“Download”: 保存: 在Notepad+ ...

  10. 正则表达式 - JavaScript描述

    正则表达式 - JavaScript描述 概述 正则表达式是被用来匹配字符串中的字符组合的模式.在JavaScript中,正则表达式也是对象. 创建正则表达式 var re = /abc/; // 使 ...