2016-06-08 2 views
0

Я пытаюсь запросить индекс elasticsearch для документов с пустым полем geo_point. Поле существует, но оно пустое (пример ниже). Запрос, который работает для фильтрации полей string, не работает для полей geo_point.Elasticsearch: фильтровать документы с пустым значением geo_point

Документ:

"_source": { 
"latitudeLongitude": "", 
"pickupLocationZipcode": "", 
} 

запросов, который работает для фильтрации строковых полей, но не geo_point поля:

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "term": { 
      "latitudeLongitude": "" 
     } 
     } 
    } 
    } 
} 

Mapping:

"latitudeLongitude": { 
    "type": "geo_point" 
} 
"pickupLocationZipcode": { 
    "index": "not_analyzed", 
    "type": "string", 
    "copy_to": [ 
     "pickup_location_zipcode" 
     ] 
} 

ответ

0

Вы можете использовать missing query для этого, и это найдут ваш документ

{ 
    "query": { 
    "filtered": { 
     "filter": { 
     "missing": { 
      "field": "latitudeLongitude", 
      "existence": false, 
      "null_value": true 
     } 
     } 
    } 
    } 
} 
Смежные вопросы