【发布时间】:2017-09-23 00:05:51
【问题描述】:
我使用 azure 搜索来索引人员和专业(专业技能)表。我的问题是,有时人们使用全名来表示技能,例如 anjularjs 或 reactjs,但在搜索时他们正在搜索 angular 或 react。在这些情况下,搜索不会返回任何马赫数。
我应该如何处理这种情况? (js后缀只是一个小例子,真实数据表中出现的更多。)
附言我无法使用建议服务。
【问题讨论】:
我使用 azure 搜索来索引人员和专业(专业技能)表。我的问题是,有时人们使用全名来表示技能,例如 anjularjs 或 reactjs,但在搜索时他们正在搜索 angular 或 react。在这些情况下,搜索不会返回任何马赫数。
我应该如何处理这种情况? (js后缀只是一个小例子,真实数据表中出现的更多。)
附言我无法使用建议服务。
【问题讨论】:
您最好定义一些同义词(即“anagularjs == angular”)。我们最近在预览模式下发布了此功能:
https://docs.microsoft.com/en-us/azure/search/search-synonyms 向您展示了如何使用它。
如果您无法创建同义词词典(也许您无法预测用户可能使用哪些术语),那么您可以将匹配定义为不精确,但告诉系统有多少个字符匹配。您可以通过创建一个[custom analyzer] 来做到这一点,该[custom analyzer] 生成的标记在索引中至少有5 个字符的长度,以便像“react”这样的术语最终出现在索引中。 (参见 edgeNGram 令牌过滤)
要详细了解 Azure 搜索中的查询处理和自定义分析器,请阅读:How full text search works in Azure Search。
【讨论】: