跨多个字段的Azure搜索模糊建议

时间:2014-10-09 00:42:22

标签: azure azure-search

鉴于我的索引配置如下:

{
  "Error": null,
  "IsSuccess": true,
  "StatusCode": 201,
  "Body": {
    "name": "test-want-index",
    "fields": [
      {
        "name": "Id",
        "type": "Edm.String",
        "searchable": false,
        "filterable": false,
        "sortable": false,
        "facetable": false,
        "suggestions": false,
        "key": true,
        "retrievable": true
      },
      {
        "name": "Title",
        "type": "Edm.String",
        "searchable": true,
        "filterable": false,
        "sortable": false,
        "facetable": false,
        "suggestions": true,
        "key": false,
        "retrievable": true
      },
      {
        "name": "Description",
        "type": "Edm.String",
        "searchable": true,
        "filterable": false,
        "sortable": false,
        "facetable": false,
        "suggestions": true,
        "key": false,
        "retrievable": true
      },
    ],
    "scoringProfiles": [],
    "defaultScoringProfile": null,
    "corsOptions": null
  }
}

填充了这些数据:

Id:123, Title:starbucks, Description:coffee that is good
Id:456, Title:big b, Description:coffee that is bad
Id:789, Title:elk brand, Description:we have elk stars

当用户输入以下查询starbucs coffee

是否可以配置索引字段,以便我可以:

  1. 匹配ID为123且ID为456的项目
  2. 模糊搜索(或建议?)标题和说明
  3. 注意:

    1. 输入stabuck作为建议的搜索字词返回ID 123
    2. 输入coffee作为建议的搜索字词返回ID 456
    3. 输入starbucs coffee不会返回任何内容。 < - 我的问题

2 个答案:

答案 0 :(得分:6)

我们目前不会在搜索上处理拼写更正/模糊查询。我们正在努力使语言学更好,这些事情会随着时间的推移而改善。

在这种特殊情况下,搜索和建议不会因任何原因返回任何内容:

搜索返回空,因为它没有进行模糊匹配,因此starbucs不匹配。请注意,如果searchMode设置为“any”(默认值),则文档仍应返回,因为“coffee”是匹配项。

建议返回空,因为它只进行完全匹配,并且没有单个字段包含整个字符串“starbucks coffee”(有或没有拼写错误)。我们收到了大量关于建议仅限前缀这一事实的“热情反馈”,我们正在研究如何使其更加灵活。

对不起我没有一个非常可操作的答案,除了确保你有& searchMode = any,所以搜索将匹配其他单词。其余的会变得更好,但我们需要一点时间。我们每周都会推出具有新功能的新功能,因此事情进展很快。

答案 1 :(得分:0)

现在可以将其作为推荐人的一项功能参考https://msdn.microsoft.com/en-us/library/azure/dn798936.aspx