一个Elasticsearch嵌套nested查询的实例
创建索引和数据准备
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查询的实例的更多相关文章
- ElasticSearch学习问题记录——nested查询不到数据
通过代码创建了索引名称为demoindex,索引类型为school,以下是索引类型的数据映射结构: { "state": "open", "setti ...
- ElasticSearch 嵌套映射和过滤器及查询
ElasticSearch - 嵌套映射和过滤器 Because nested objects are indexed as separate hidden documents, we can’t q ...
- python查询elasticsearch(Query DSL) 实例
import datetime import sys import getopt import hashlib from elasticsearch import Elasticsearch &quo ...
- Elasticsearch文档查询
简单数据集 到目前为止,已经了解了基本知识,现在我们尝试用更逼真的数据集,这儿已经准备好了一份虚构的JSON,关于客户银行账户信息的.每个文档的结构如下: { , , "firstname& ...
- elasticsearch 嵌套对象之嵌套类型
nested类型是一种特殊的对象object数据类型(specialised version of the object datatype ),允许对象数组彼此独立地进行索引和查询. 1. 对象数组如 ...
- 利用kibana插件对Elasticsearch进行bool查询
#bool查询#老版本的filtered查询已经被bool代替#用 bool包括 must should must_not filter来完成 ,格式如下:#bool:{# "filter ...
- 《数据库系统概念》4-DDL、集合运算、嵌套子查询
一.DDLa) SQL Data DefinitionSQL的基本数据类型有char(n).varchar(n).int.smallint.numeric(p,d).real,double preci ...
- SQL相关子查询是什么?和嵌套子查询有什么区别?
目录 两者的各种叫法 相关子查询MySQL解释 相关子查询Wikipedia解释 相关子查询执行步骤拆解 相关子查询和嵌套查询的区别 参考资料 两者的各种叫法 相关子查询叫做:Correlated S ...
- elasticsearch GIS空间查询问题解决
在GIS行业的应用越来越广泛,GIS最常用根据区域进行空间数据查询 我定义了两个方法,一起来看一下: /** * geodistance filter * 一个过滤器来过滤基于一个特定的距离从 ...
随机推荐
- sql 循环表中记录
=========================================================================循环排序查询数据=================== ...
- 170222、使用Spring Session和Redis解决分布式Session跨域共享问题
使用Spring Session和Redis解决分布式Session跨域共享问题 原创 2017-02-27 徐刘根 Java后端技术 前言 对于分布式使用Nginx+Tomcat实现负载均衡,最常用 ...
- 160812、apache milagro分布式安全认证系统
java32位.64位及js的代码:http://pan.baidu.com/s/1cqnwuE 一.云链接为中心的软件及需要互联网规模物联网设备 二.利用双线性密码学分发加密操作和分裂的加密参数 三 ...
- 在Scrapy中使用IP池或用户代理更新版(python3)
middlewares.py # -*- coding: utf-8 -*- # 导入随机模块 import random # 导入有关IP池有关的模块 from scrapy.downloaderm ...
- apktool 工具
下载 https://code.google.com/p/android-apktool/ apktool_2.0.0rc2.jar 和apktool linux脚本 ln –s apktool_ ...
- LIMIT Query Optimization
LIMIT limitFrom , perPageNum LIMIT offset, size MySQL :: MySQL 8.0 Reference Manual :: 13.2.10 SELEC ...
- Python菜鸟之路:Django 序列化数据
类型一:对于表单数据进行序列化 这时需要用到ErrorDict. ret['errors'] = obj.errors.as_data() result = json.dumps(ret, cls=J ...
- 第一节:web 框架本质
1.web请求本质是什么: web请求本质:就是一个socket. 浏览器充当是客户端,python充当一个服务器端 浏览器请求相当一次tcp请求,请求完成断开连接 ,下次去的时候 ...
- BioinfomaticsPPT-1-Introduction
1.人类基因基础 2.基因组规模 3.基因分化表达 4.遗传信息流 5.基因基础知识相关 6.遗传编码 7.序列比对的意义 8.
- Python-Cpython解释器支持的进程与线程
一.Python并发编程之多进程 1. multiprocessing模块介绍 python中的多线程无法利用多核优势,如果想要充分地使用多核CPU的资源(os.cpu_count()查看),在pyt ...