【问题标题】:Calculate similarity in percentage based on the score from azure search根据天蓝色搜索的分数计算相似度百分比
【发布时间】:2022-07-12 06:42:31
【问题描述】:

我使用 Azure 搜索服务和 Cosmos DB 作为数据源来启用 nodejs 应用程序中的搜索功能。有一个用例,我需要显示从 azure search API 获得的每个文档的百分比相似度(到 100%)。 例如:

API : https://name.search.windows.net/indexes/dbname/docs/search?api-version=2016-09-01

Payload: {
        "search" : "This is a test key for search service",
        "searchFields":"title, description",
        "searchMode":"all",
        "count":true               
        
    }

Response :  "@odata.count": 2,
            "value": [
            {
              "@search.score": 4.190574,
            ...},
           {"@search.score": 3.9293563,
            ...}]

有什么方法可以将 @search.score 转换为 doc1 - 60% 和 doc2 -50% 与搜索键的相似度?我通读了有关使用评分配置文件和使用不同的搜索 API 算法的文档。我了解分数是基于索引的,分数没有特定的范围。但是,如果可以进行任何类型的转换,那就太好了,还是我需要考虑另一种方法?帮助将不胜感激:)

【问题讨论】:

    标签: node.js azure azure-cognitive-search


    【解决方案1】:

    相关性分数大多是抽象的 - 在 Azure 搜索的情况下,分数表示搜索词在文档中出现的频率(对稀有词有一些综合偏见,并使用考虑长度的公式文件)。更高的分数意味着“更多正在搜索的单词出现在文档中”。在您的情况下,百分比意味着什么?例如,100% 意味着什么?还是 50%?

    如果您只想显示百分比而不是分数,同时保持相同的排名,您可以将所有分数除以最高分数(这样每个请求的最高文档总是得分 100%,而其他文档在百分比)。但是,这仍然不允许您比较不同请求之间的文档分数。

    【讨论】:

      猜你喜欢
      • 2018-03-08
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多