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