行动是治愈恐惧的良药,而犹豫、拖延将不断滋养恐惧。

ES 中如何实现向量计算排序

Elasticsearch | 作者 Jinyang Zhou | 发布于2018年02月26日 | 阅读数:5522

已有的排序方法是BM25,有没有办法能换成向量呢?
 
例如索引中的文档有一个 filed 是向量,是 [0.5, 0.2, 0.3] 这样,然后query 的时候带上一组向量,然后排序的时候按照向量的 cosine 来排序。
 
找了一下似乎有插件但是好像都是只支持旧版本 ES 到5.4,有 ES6 版本可以使用的吗?
 
还有一个问题,如果可以实现向量计算的得分并排名,那么这个排序可以和 ES 自带的共存吗?比如我的文档有文本字段:title/introduction,也有一个向量字段,query 也会有文本字段和向量,那么我计算得分的时候可以同时拥有 _score(默认 BM25得到的分数)和 _score_2(cosine 得分)吗?因为最后我想把这两个分数用 function 做计算再输出。。
已邀请:

hufuman

赞同来自:

script查询可以做到,不过有点怀疑cos的性能不好

要回复问题请先登录注册