elasticsearch 是否有方法显示所选文档与ElasticSearch上的其他文档相似的百分比?,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 是否有方法显示所选文档与ElasticSearch上的其他文档相似的百分比?,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 是否有方法显示所选文档与ElasticSearch上的其他文档相似的百分比?

elasticsearch 是否有方法显示所选文档与ElasticSearch上的其他文档相似的百分比?,elasticsearch,lucene,elasticsearch,Lucene,我需要使用Elasticsearch构建一个搜索引擎,步骤如下: 使用搜索字符串在搜索引擎上搜索 将显示相关结果,我可以单击这些文档 如果我选择了一个文档,我将被重定向到另一个页面,在那里我将看到文档的所有详细信息,并将有一个选项“更像这样”(它将返回与所选文档类似的文档)。我知道这是使用MLT查询完成的 现在我的问题是:除了返回与所选文档相似的文档外,如何还返回与所选文档相似的百分比 你可以做几件事 使用函数\u得分查询 more\u like\u这个查询本质上是一个全文搜索,它返回按相关性得

我需要使用Elasticsearch构建一个搜索引擎,步骤如下:

  • 使用搜索字符串在搜索引擎上搜索
  • 将显示相关结果,我可以单击这些文档
  • 如果我选择了一个文档,我将被重定向到另一个页面,在那里我将看到文档的所有详细信息,并将有一个选项“更像这样”(它将返回与所选文档类似的文档)。我知道这是使用MLT查询完成的
  • 现在我的问题是:除了返回与所选文档相似的文档外,如何还返回与所选文档相似的百分比

  • 你可以做几件事

    使用
    函数\u得分
    查询
    more\u like\u这个
    查询本质上是一个全文搜索,它返回按相关性得分排序的文档。可以将分数直接转换为百分比,但不建议( 更具体地说)

    相反,可以通过查询定义自定义分数,查询可以设计为返回有意义的百分比

    当然,这会带来额外的复杂性成本,“相似性”的定义更像是一门艺术,而不是科学

    使用密集向量 人们可以选择使用(但仍然是实验性的)数据类型,它允许存储和比较密集向量(即固定大小的数字数组)。下面有一篇文章非常好地描述了这种方法:

    在这种情况下,相似性的定义尽可能精确:多维空间中两个向量的距离,可以通过,例如,计算

    然而,必须以某种方式计算此类密集向量,并且所述向量的质量将等于相似性本身的质量

    作为底线,我必须说,为了让Elasticsearch发挥作用,应该在外部添加一系列计算和逻辑,无论是以预先计算的模型的形式,还是以定制的计分算法的形式。Elasticsearch开箱即用似乎不是一种很好的交易


    希望有帮助

    如前所述,如果您打算通过
    dense_vector
    使用语义搜索,我建议您。NBoost有一个很好的开箱即用系统,用于改进SOTA模型的Elasticsearch结果