2017-02-21 107 views
1

我们有一个天蓝色的Web应用程序,其中有一个搜索框,当我们用双引号输入文本时,例如“App Service”,它使用“App service”列出记录,但它也包含有特殊记录在“App/Service”之类的词之间的字符。我们希望搜索引擎准确地返回与搜索词相匹配的记录(不要在搜索词之间包含具有特殊字符的记录)。Azure搜索,精确词组匹配

回答

1

在这种情况下,您希望将字段的全部内容作为单个标记进行索引。请看Custom Analyzers in Azure Search,特别是keyword分析仪。

+0

@Eugene您好,感谢回答,是不是有一种忽略在它们之间有特殊字符的记录的方法,自定义分析器似乎不可行。 – harshu288

1

在你的情况standard分析仪打破了长期应用程序/服务分为两个个别条款应用,并在索引时间服务。这就是为什么短语“应用程序服务”与应用程序/服务匹配的文档 - 两个版本看起来都与搜索引擎相同。

如果术语应用/服务构成了字段内容的全部内容,则可以使用keyword分析器将该字段的内容作为单个标记进行索引。在这里了解更多:Custom Analyzers in Azure Search

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

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

以下职位将帮助您了解如何分析在词汇搜索和索引时间应用:How to practially use a keywordanalyzer in azure-search?