首页 文章 精选 留言 我的

精选列表

搜索[exist],共871篇文章
优秀的个人博客,低调大师

elasticSearch nested exist与missing查询

elasticSearch nested查询,简单意义上,你可以理解为,它不会被索引,只是被暂时隐藏起来,而查询的时候,开关就是使用nested query/filter去查询 下面我有一个例子,是查询文档中,含有某字段的nested查询,与不含有某字段的nested查询办法。 1.查询文档中存在某字段(account.userId)的nested ES查询语句 核心 { "query": { "nested": { "path": "account", "query": { "match_all": {} }, "filter": { "exists": { "field": "account.userId" } } } } } java查询语句 //构建Nested查询 NestedFilterBuilder nfb = FilterBuilders.nestedFilter("account", QueryBuilders.filteredQuery( QueryBuilders.matchAllQuery(), FilterBuilders.existsFilter("account.userId"))); nfb嵌入到原有的查询query中即可 完整查询 { "query" : { "filtered" : { "query" : { "match_all" : { } }, "filter" : { "and" : { "filters" : [ { "range" : { "oppType" : { "from" : 20, "to" : null, "include_lower" : true, "include_upper" : true } } }, { "term" : { "city" : 1 } }, { "range" : { "status" : { "from" : 0, "to" : 12, "include_lower" : true, "include_upper" : false } } }, { "nested" : { "query" : { "filtered" : { "query" : { "match_all" : { } }, "filter" : { "exists" : { "field" : "ajkAccount.ajkUserId" } } } }, "path" : "ajkAccount" } }, { "or" : { "filters" : [ { "term" : { "saleId" : "xxx" } }, { "terms" : { "deptId" : [ "dept001" ] } } ] } } ] } } } } } curl -XPOST 'http://192.168.1.xx:9200/xxxIndex/xxxEntry/_search' '{"query":{"filtered":{"query":{"match_all":{}},"filter":{"and":{"filters":[{"range":{"oppType":{"from":null,"to":20,"include_lower":true,"include_upper":false}}},{"term":{"city":1}},{"range":{"status":{"from":0,"to":11,"include_lower":true,"include_upper":true}}},{"query":{"nested":{"path":"account","query":{"match_all":{}},"filter":{"exists":{"field":"account.userId"}}}}}]}}}}}' 2.查询文档中不存在某字段(missing account.userId)的nested ES查询语句 核心 { "not":{ "nested" : { "query" : { "filtered" : { "query" : { "match_all" : { } }, "filter" : { "exists" : { "field" : "account.userId" } } } }, "path" : "account" } } } java代码 //构建Nested查询 NestedFilterBuilder nfb = FilterBuilders.nestedFilter("account", QueryBuilders.filteredQuery( QueryBuilders.matchAllQuery(), FilterBuilders.existsFilter("account.userId"))); //添加Not FilterBuilders.notFilter(nfb); 完整ES查询 { "query" : { "filtered" : { "query" : { "match_all" : { } }, "filter" : { "and" : { "filters" : [ { "range" : { "oppType" : { "from" : 20, "to" : null, "include_lower" : true, "include_upper" : true } } }, { "term" : { "city" : 1 } }, { "range" : { "status" : { "from" : 0, "to" : 12, "include_lower" : true, "include_upper" : false } } }, { "not" : { "filter" : { "nested" : { "query" : { "filtered" : { "query" : { "match_all" : { } }, "filter" : { "exists" : { "field" : "account.userId" } } } }, "path" : "account" } } } }, { "or" : { "filters" : [ { "term" : { "saleId" : "xxxxx" } }, { "terms" : { "deptId" : [ "dept01" ] } } ] } } ] } } } } } curl -XPOST 'http://192.168.1.xx:9200/xxxIndex/xxxEntry/_search' '{"query":{"filtered":{"query":{"match_all":{}},"filter":{"and":{"filters":[{"range":{"oppType":{"from":20,"to":null,"include_lower":true,"include_upper":true}}},{"term":{"city":1}},{"range":{"status":{"from":0,"to":12,"include_lower":true,"include_upper":false}}},{"not":{"filter":{"nested":{"query":{"filtered":{"query":{"match_all":{}},"filter":{"exists":{"field":"account.userId"}}}},"path":"account"}}}},{"or":{"filters":[{"term":{"saleId":"xxxxx"}},{"terms":{"deptId":["dept01"]}}]}}]}}}}}' 参考http://grokbase.com/t/gg/elasticsearch/13a49a2hmq/check-if-field-exists-in-a-nested-objecthttps://github.com/elastic/elasticsearch/issues/3495 `

优秀的个人博客,低调大师

解决u盘安装centos7 /dev/root does not exist 导致无法安装方案

方案1: 本人下的是这个CentOS-7.0-1406-x86_64-DVD.iso,在163镜像中下载的,然后用UltraISO 9.6制作的U盘启动盘,不过在安装的时候出现了这个错误然后也是搜了好久,试了一下,下面这个方法,是正确可行的.在最后我会解释原因 第一步: 制作完成之后,将U盘的标签名字改掉,随便改成什么,不过最好简单一点,因为待会会用到 第二步: 开始安装,在进入安装界面,显示 Install CentOS 7 的这个界面的时候,选择第一个选项,也就是Install CentOS 7,按e编辑启动项,将CentOS 7 x86_64…那一串改成 你自己改成的字符串,然后ctrl+x启动 方案2; 正常步骤至此的话,我们应该选择 “Install CentOS 7" 按下Enter 然后进入安装界面。但实际的结果是我们到不了安装界面,而是会出错,如下图: 这个问题是木有找到你的U盘,这个配置是需要在上一步需要完成的,但在上一步我们并不知道U盘的文件名,所以索性在这一步查看一下U盘的设备名,然后再回到上一步完成配置。 在#后面输入:cd /dev,然后会看到如下界面: sda 是我的硬盘对应的文件名(我机子只有一块硬盘),所以sdb就是U盘对应的文件名了,可以看到是sdb4。至此我们重启一下,回到第一个图片所示的界面处,然后按下Tab键,将vmlinuz initrd=initrd.imginst.stage2=hd:LABEL=CentOS\x207\x20x86_64 rd.live.check quiet改为:vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quite 然后按下enter 键进入安装界面,就可以顺利开始安装了。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册