增强搜索结果中与数组匹配的文档

时间:2019-07-02 09:50:45

标签: elasticsearch

我已经建立了这个相对复杂的搜索查询,并且可以进行完美的排序。

但是我认为这里由于脚本的原因搜索很慢,所以我想删除脚本并相应地编写查询。

当前代码:-

"sort": [
{
  "_script": {
    "type": "number",
    "script": {
      "lang": "painless",
      "source": "double pscore = 0;for(id in params.boost_ids){if(params._source.midoffice_master_id == id){pscore = -999999999;}}return pscore;",
      "params": {
        "boost_ids": [
         3,
         4,
         5
        ]
      }
    }
  }
},
{
  "_geo_distance": {
    "location": {
      "lat": -8.435345,
      "lon": 103.184316
    },
    "order": "asc"
  }
}

] }

以上代码说明:-

例如,如果一个空匹配查询将给出如下结果:

[{id: 1}, {id: 2}, {id: 3}, {id: 4}, {id: 5}, ...]

因此,我在这里实现了排序,该脚本具有以下脚本:从数组中获取脚本,然后从数组中查找与搜索结果的ID相匹配的任何元素,并以最小距离(由geo_distance查询计算得出)显示在顶部

就像提供数组[3,4,5]一样,它将结果转换为:

[{id: 3}, {id: 4}, {id: 5}, {id: 1}, {id: 2}, ...]

在这种情况下请帮助我。

先谢谢了。 :)

0 个答案:

没有答案