Amazon CloudSearch带有重音符号的单词

时间:2019-05-03 11:26:54

标签: amazon-web-services search full-text-search amazon-cloudsearch

我有一个带有重音单词的文档索引。

例如,此文档使用葡萄牙语:

title => 'Ponte metálica'

如果我搜索“ metálica”,则表示匹配,因此没有问题。 但是通常人们搜索时都没有重音,因此仅搜索“ metalica ”(注意没有重音“á”的“ a”)是很常见的。

但是它没有返回任何结果。我在AWS控制台中通过端点/ search对其进行了测试。我正在使用2013 API。

我认为同义词不能完整解决这个问题

1 个答案:

答案 0 :(得分:1)

您似乎在AWS forums中发布了相同的问题并得到了回复:

  

CloudSearch葡萄牙语词干分析器不会删除重音符号,因此á将不匹配重音符号,并且它目前没有删除这些重音符号的选项。

     

我能想到的两种解决方法:

     
      
  1. 在上载之前删除重音符号。 (可能是其他字段)
  2.   
  3. 使用复制字段和“多种语言”分析模式。不幸的是,这不会阻止葡萄牙语的字眼,但确实会删除重音!
  4.   

我喜欢在上传之前删除重音符号的想法,但是我还有另外两个想法:

  1. 使用fuzzy matching,以便可以容忍一个或两个“错误”字符。可能有性能上的缺点要考虑。

  2. 提供一个auto-complete/suggestor solution,类似于“您的意思是?”。体验类型。

我发现2014年左右的这个Stack Overflow线程讨论了这两种可能性,仍然使用CloudSearch:Implementing "Did you mean?" using Amazon CloudSearch

关于模糊匹配算子:

  

您还可以使用简单的查询解析器执行模糊搜索。要执行模糊搜索,请附加〜运算符和一个值,该值指示与用户查询字符串可以相差多少且仍被视为匹配项。例如,指定planit~1会搜索“ planit”一词,并允许匹配项最多相差一个字符,这意味着结果将包括行星的匹配。

关于自动完成,带有模糊匹配选项:

  

当您请求建议时,Amazon CloudSearch会找到所有其建议者字段中的值以指定查询字符串开头的文档-该字段的开头必须与查询字符串匹配才能被视为匹配项。返回数据包括每个匹配项的字段值和文档ID。您可以配置建议程序以查找与确切查询字符串匹配的内容,或执行近似字符串匹配(模糊匹配)以纠正印刷错误和拼写错误。