建议者和NGram之间的区别

时间:2019-10-22 18:51:34

标签: azure-cognitive-search n-gram

我已经使用“自定义分析器”建立了索引

"analyzers": [
    {
      "@odata.type": "#Microsoft.Azure.Search.CustomAnalyzer",
      "name": "ingram",
      "tokenizer": "whitespace",
      "tokenFilters": [ "lowercase", "NGramTokenFilter" ],
      "charFilters": []
    }
  ],
  "tokenFilters": [
    {
      "@odata.type": "#Microsoft.Azure.Search.NGramTokenFilterV2",
      "name": "NGramTokenFilter",
      "minGram": 3,
      "maxGram": 8
    }
  ],

我遇到了建议者,想知道这两种方法之间的优缺点。

基本上,我正在做一个JavaScript自动完成文本框。我需要在搜索文本内进行部分文本搜索(即search = ell将在“ Hello World”上匹配。

1 个答案:

答案 0 :(得分:0)

Azure Search提供了两个功能来启用此功能,具体取决于您希望为用户提供的体验: -建议:https://docs.microsoft.com/en-us/rest/api/searchservice/suggestions -自动完成:https://docs.microsoft.com/en-us/rest/api/searchservice/autocomplete

即使使用不完整的查询词,建议也将返回匹配文档的列表,并且您可以使用使用ngram的自定义分析器重现它,这是正确的。这只是完成此操作的一种简单方法(因为我们已经为您设置了分析仪)。

自动完成功能非常相似,但是它不会返回匹配的文档,而只是返回与查询中不完整术语匹配的已完成“术语”列表。这样可以确保术语不会在自动完成列表中重复(这会在使用建议API时发生,因为如上所述,建议返回匹配的文档,而不是术语列表)。