2017-02-21 119 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?