Azure搜索,精确短语匹配

时间:2017-02-21 07:47:06

标签: c# azure azure-search

我们有一个azure web应用程序,其中有一个搜索框,当我们输入带有双引号的文本(如“App Service”)时,它会列出带有“App service”的记录,但它也包含在这些单词之间具有特殊字符的记录“应用程序/服务”。我们希望搜索引擎准确地返回与搜索短语匹配的记录(不包括搜索词之间具有特殊字符的记录)。

2 个答案:

答案 0 :(得分:2)

在您的情况下,standard分析器会在索引时将应用/服务这两个词分为两个单独的术语 app service 。这就是“App Service”这个短语与 App / Service 匹配的原因 - 两个版本看起来与搜索引擎相同。

如果术语应用程序/服务构成字段的全部内容,则可以使用keyword分析器将该字段的内容编入索引作为单个标记。点击此处了解详情:Custom Analyzers in Azure Search

如果术语 App / Service 作为句子的一部分出现,keyword分析器将不是一个好的选择。在这种情况下,您可以将/字符替换为standard标记生成器未分割的其他字符,例如:_。使用mappping字符标记过滤器:

charFilters: [
  {
    "name":"map_char_mapping",
    "@odata.type":"#Microsoft.Azure.Search.MappingCharFilter",
    "mappings":[ "/=>_" ]
  }     
] 

以下文章将帮助您了解在搜索和索引编制时如何应用词法分析器:How to practially use a keywordanalyzer in azure-search?

答案 1 :(得分:1)

在此方案中,您希望将字段的整个内容编入索引作为单个标记。请查看Custom Analyzers in Azure Search,特别是keyword分析器。