Azure搜索 - 以不同格式处理出生日期

时间:2017-04-26 00:18:23

标签: sql azure azure-search

我们的SQL数据库/ Azure搜索索引中有两个字段,包含多种格式的出生日期,包括所有不同序列中的数字,单词及其任何变体。为了使事情进一步复杂化,字段中可能还有其他文本,如“DOB”或人名。遗憾的是,我们无法实现一致性,因为我们正在从中提取这些数据。

如何在Azure搜索中最好地处理?我们可以要求我们的客户在其查询中使用一致的强制DOB格式,但是Azure搜索可以采用哪种方式并以多种不同的日期格式查找它?我们是否应该寻找一种方法在我们的表格中创建一个试图标准化出生日期的新领域?

1 个答案:

答案 0 :(得分:1)

可以帮助您解决此问题的一件事是Microsoft语言分析器尝试在可能的情况下以不同格式规范化日期。您可以使用Analyze API查看Microsoft English分析器如何处理表示日期的文本。例如,对于以下请求

 {
   "text": "2015/13/04",
   "analyzer": "en.microsoft"
 }

分析器生成一个代表标准化日期的标记:

  

dd20150413

注意,分析仪识别出数字13表示日期,03表示月份。文本 2015年4月13日 13-04-2015 会生成相同的标记。

这意味着,使用任何支持的格式进行搜索的用户将匹配具有被识别为相同日期的文档。

如果Microsoft分析器的默认行为不足,您始终可以使用Microsoft分析器创建custom analyzer。要详细了解搜索引擎的默认行为以及如何对其进行自定义,请阅读以下文章:How full text search work in Azure Search