elasticsearch - 按距离和价格/评级排序

时间:2016-05-19 06:47:42

标签: sorting elasticsearch geolocation

我正在尝试撰写一个首先按_geo_distance排序的查询,然后按pricerating排序。基本上,我想要达到的是具有最高评级/价格的最接近的结果。

以下是一个示例查询:

{
  query: {
    bool: {
      must: [
        {
          bool: {
            should: [
              {
                match_all: {

                }
              }
            ]
          }
        }
      ],
      filter: [
        {
          bool: {

          }
        }
      ]
    }
  },
  sort: [
    {
      _geo_distance: {
        location: {
          lat: 51.840191,
          lon: 61.581038
        },
        order: 'asc',
        unit: 'km',
        distance_type: 'sloppy_arc'
      }
    },
    {
      rating: {
        order: 'desc'
      }
    }
  ],
  size: 10,
  from: 0,
  _source: [
    'id',
    '_score',
    'location',
    'price',
    'rating'
  ]
}

问题是结果只包含最接近的结果,而且收视率和价格都很低。

我的问题是,是否可以以某种方式调整排序,还是应该附加function_score查询来替换排序?

0 个答案:

没有答案