【问题标题】:Lucene documents scoring/ranking with regex query使用正则表达式查询的 Lucene 文档评分/排名
【发布时间】:2016-12-29 11:46:16
【问题描述】:

我正在使用 Azure 搜索,但假设我的问题与 Lucene 更相关。 当查询完全或部分由正则表达式组成时,找不到有关如何计算文档排名(分数)的任何信息。例如:

搜索“microsoft”返回正常计算的分数:

{ score: 6.088776, name: "Microsoft Research" }
{ score: 5.9090853, name: "Microsoft Corporation" }
{ score: 5.0747375, name: "Microsoft Philippines, Inc." }
{ score: 4.93202, name: "Microsoft Dynamics, Inc." }

当搜索“/.micro./”时返回分数等于 1:

{ score: 1, name: "Microsoft Dynamics, Inc." }
{ score: 1, name: "Microsoft Philippines, Inc." }
{ score: 1, name: "Microsoft Startup Alley" }

搜索“microsoft /.micro./”,我想返回“microsoft”术语分数和 /.micro./ 术语分数的总和(总是等于到 1):

{ score: 5.2132897, name: "Microsoft Research" }
{ score: 5.198583, name: "Microsoft Corporation" }
{ score: 4.973414, name: "Microsoft Philippines, Inc." }

我需要的是运行完整的正则表达式查询并计算分数。

【问题讨论】:

    标签: regex lucene azure-cognitive-search


    【解决方案1】:

    在 Azure 搜索中,通配符搜索查询(如前缀、正则表达式和模糊搜索查询)经过内部查询重写过程并返回恒定分数。这主要是由于性能原因,也是为了防止我们默认的基于词频的评分 (TF-IDF) 偏向于来自频率较低的唯一词的匹配。该行为记录在https://docs.microsoft.com/en-us/rest/api/searchservice/lucene-query-syntax-in-azure-search#bkmk_searchscoreforwildcardandregexqueries 中。目前没有办法更改此默认行为。如果您认为该功能很重要,请在我们的用户语音 (https://feedback.azure.com/forums/263029-azure-search) 中创建一个条目,以帮助我们确定优先级。谢谢。

    内特

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-02
      • 2015-08-01
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-09
      • 1970-01-01
      相关资源
      最近更新 更多