更新了es数据的索引,查看下是否全部都有新的field.
GET index/_search
{
"query": {
"bool": {
"must_not": {
"exists":{"field":"filedX"}
}
}}
}
如果存在,使用must
有时候搜索多个索引的时候,有的索引
不存在
,我希望忽略调传入参数中的
不存在
的索引。可以添加如下参数,这样
ES
不会返回错误信息。
SearchRequ
es
t searchRequ
es
t = new SearchRequ
es
t(indic
es
, searchSourceBuilder);
searchRequ
es
t.indic
es
Options(Indic
es
Options.lenientExpandOpen());
//5、missing query:返回没有
字段
或值为null或没有值的文档。
QueryBuilders.missingQuery("accountGuid")
//java client标记该方法已经过时,推荐用exist代替 如下
QueryBuilders.boolQuery().mustNot(QueryBuilders.existsQuery("accountGuid"));...
倒排索引是标记和包含term的文档的一个简单列表。假如一个
字段
不存在
,它就没有任何标记,也就意味着它无法被倒排索引的数据结构表达出来。
本质上来说,null,[](空数组)和 [null] 是相等的。它们都
不存在
于倒排索引中
显然,这个世界却没有那么简单,数据经常会缺失
字段
,或包含空值或空数组。为了应对这些情形,
Elasticsearch
有一些工具来处理空值或缺失的
字段
。
【exists 过滤器】
工具箱中的第一个利器是 exists 过滤器,这个过滤器将返回任何包含这个
字段
的文档,让我们用标签来举例,索
Nativ
eS
earchQueryBuilder 中有一个 sourceFilter
字段
。image.png查看源码public interface SourceFilter {String[] getInclud
es
();String[] getExclud
es
();}这是一个接口,需要实现 包含什么
字段
,和不包含什么
字段
。SearchQuery searchQuery = new Nativ...