ES Query on a Dynamic Object
- taolius
- Aug 21, 2017
- 1 min read
if the field "enabled: false', it means indexing on this field is disabled, so can not use . to concatenate and search, need to use query.
Script script =
new Script(String.format("params._source.unreachableList.containsValue('%s')", filterStatus));
boolFilter.must(QueryBuilders.scriptQuery(script));
String.format("params._source.[dynamic object name].containsValue('%s')",field));
or use multiple conditions
{ "query": { "bool" : { "must" : [ { "script" : { "script" : { "inline" : "params._source.userDefinedFields.containsValue('usa') && params._source.userDefinedFields.containsKey('testCol2')", "lang" : "painless" }, "boost" : 1.0 } } ], "disable_coord" : false, "adjust_pure_negative" : true, "boost" : 1.0 } } }
Commentaires