Azure 搜索突出显示不适用于具有评分配置文件的通配符



azure搜索支持全文搜索突出显示,该搜索有助于客户端在返回的文档中找到匹配的术语。我在下面提供了一个简单的索引模式来说明问题。

{
"name": "simple-index", 
"fields": [
    {
        "name": "key",
        "type": "Edm.String"
    },
    {
        "name": "simplefield",
        "type": "Edm.String"
    }
],
"scoringProfiles": [
    {
        "name": "boostedprofile",
        "functionAggregation": null,
        "text": {
            "weights": {
                "simplefield": 5,
            }
        },
        "functions": []
    }
],
"corsOptions": null,
"suggesters": [],
"analyzers": [],
"tokenizers": [],
"tokenFilters": [],
"charFilters": []
}

对于如下图所示的正常搜索查询,它可以按预期工作并回馈预期的结果。

search=foobar&highlight=simplefield

在扩展上述查询以使用通配符查询时,情况再次如预期的那样,其中包含匹配前缀的术语的响应。到目前为止还不错。

search=foo*&highlight=simplefield&querytype=full

此之后,当我在上一个查询之上应用评分配置文件时,结果是出乎意料的,没有返回突出显示。

search=foo*&highlight=simplefield&querytype=full&scoringprofile=boostedprofile

使用评分轮廓时,如何使高光用于通配符查询?

在回答时,这是Azure搜索中的已知限制,当与评分配置文件一起使用时,突出显示对通配符查询不起作用。内部Azure搜索使用了荧光笔的概念,该概念负责突出显示流程作为搜索后发生的单独过程。

在通配符查询的情况下,它涉及查找匹配提供的前缀术语的索引中的所有术语,然后使用它们构成突出显示的文本。评分概况会影响索引中的术语以进行突出显示的方式。因此,结果不包括任何亮点。

由于这是通配符查询的特定限制,因此,一个解决方法是预先处理索引,以避免发布通配符/前缀查询。请看一下自定义分析(https://learn.microsoft.com/en-us/rest/rest/api/searchservice/custom-analyzers-in-azure-search),例如索引中的单词,并与前缀(带有"*"运算符)发出常规术语查询

我希望这很有用。请对反馈项目进行投票,以帮助我们优先考虑开发工作,以支持其他将支持上述用例的方式。https://feedback.azure.com/forums/263029-azure-search/suggestions/32661961-implement-implement-other-highlighters

最新更新