【问题标题】:Azure Search highlighting doesn't work for wildcards with scoring profilesAzure 搜索突出显示不适用于带有评分配置文件的通配符
【发布时间】:2019-07-21 21:35:53
【问题描述】:

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-cognitive-search hit-highlighting


    【解决方案1】:

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

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

    由于这是通配符查询的特定限制,一种解决方法是预处理索引以避免发出通配符/前缀查询。请查看自定义分析 (https://docs.microsoft.com/en-us/rest/api/searchservice/custom-analyzers-in-azure-search) 例如,您可以使用 edgeNgram 标记过滤器并将单词的前缀存储在索引中,并发出带有前缀的常规术语查询(不带“*”运算符)

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-22
      • 2015-08-11
      • 1970-01-01
      • 1970-01-01
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 2016-09-09
      相关资源
      最近更新 更多