弹性搜索查询场景

时间:2014-11-29 17:30:37

标签: elasticsearch nested-queries

我正在构建一个需要基于位置搜索酒店的应用程序。

我有三个主要类

class Hotel {
   String name
   String latitude
   String longitude
}

class HotelResource {
   Hotel hotel
   String name

}

class HotelResourceAvailability{
  HotelResource resource

}

HotelResourceAvailability - 保存酒店资源的可用性数据。

查询方案, 作为用户,我想搜索具有至少一个可用酒店资源的特定位置的所有酒店 并获得每家酒店的可用资源数量

注意 - 应该过滤掉符合位置标准但没有任何可用资源的酒店。

我是弹性搜索的新手,并且发现很难确定任何指针都会非常受欢迎。

1 个答案:

答案 0 :(得分:0)

让你开始的三点:

  1. 我会尽可能保持您的数据模型 - Elasticsearch不是关系型的,因此您无法轻松地从一个对象加入另一个对象。
  2. 纬度和经度可以存储在geo_point类型中 - 然后您可以使用查询查找最近的匹配酒店。
  3. 酒店的供应情况是根据日期而有吗?如果是这样,我会使用nestingparent child关系。