2017-02-15 10 views
0

есть возможность выполнить поиск с помощью одного запроса в ElasticSearch так:Elasticsearch - Seach документ с geo_shape на основе другого документа geo_shape

  1. Получить документ с ID = 1
  2. Этот документ имеет поле с geo_shape отображение
  3. Получить значения из этого поля
  4. Искать другие документы, которые geo_shape поля пересекается с доком (ID = 1) geo_shape
  5. Возвращение найдено документы

?

ответ

1

Да, вы можете использовать pre-indexed shapes для этой цели.

POST /_search 
{ 
    "query": { 
     "bool": { 
      "must": { 
       "match_all": {} 
      }, 
       "filter": { 
        "geo_shape": { 
         "your_shape_field": { 
          "indexed_shape": { 
           "id": "1", 
           "type": "your_type", 
           "index": "your_index", 
           "path": "shape" 
          }, 
          "relation": "intersects" 
         } 
        } 
       } 
     } 
    } 
} 

Этот запрос возвращает все документы, имеющие your_shape_field пересекают shape поле в документе с идентификатором 1.

+0

Это здорово! Большое спасибо! – Daniel

 Смежные вопросы

  • Нет связанных вопросов^_^