Lucene使用正则表达式查询记录评分/排名

时间:2016-12-29 11:46:17

标签: regex lucene azure-search

我正在使用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." }

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

1 个答案:

答案 0 :(得分: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)创建一个条目,以帮助我们确定优先顺序。谢谢。

Nate

相关问题