我想在elasticsearch中编写一个查询,在字段中搜索空值和任何特定值, 我看了这个链接:null_values
并发现对于其类型为boolean或long的字段,它们的默认值为null,但是如何判断弹性在长字段中搜索具有值或null:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == MY_LOCATION_REQUEST_CODE) {
if (permissions.length == 1 &&
permissions[0] == Manifest.permission.ACCESS_FINE_LOCATION &&
grantResults[0] == PackageManager.PERMISSION_GRANTED) {
mMap.setMyLocationEnabled(true);
} else {
// Permission was denied. Display an error message.
}
}
现在我这样查询
field == null OR field == [1,2,3,4,]
它让我错误错误请求..
你可以帮我写一下我的查询吗? 感谢答案 0 :(得分:1)
您需要使用exists
查询检查字段是否存在。
在查询字符串语法中,它是这样的:
NOT(_exists_:field) OR field == [1,2,3,4,]
在查询DSL中,它是这样的:
'should' => [
[
'bool' => [ 'must_not' => [ 'exists' => [ 'field' => 'field' ] ] ]
],
[
'terms' => ['field' => [1, 2, 3, 4, 5 ,6]
]
]