整个字符串的 CloudSearch 模糊匹配不起作用

CloudSearch fuzzy matching of whole string doesn't work

我已经设置了一个 Amazon CloudSearch 域,其中包含保存地址的记录。我想在地址字段上进行模糊文本搜索。

假设我有一个地址如下的记录:

1600 Amphitheatre Parkway, Mountain View, CA 94043.

如果我搜索 'Amphitheatre Parkway, Muntain View'~5,我没有得到任何结果。我基本上删除了 "Mountain" 中的 'o' 并且没有找到任何结果。

如果我搜索 Muntain~5 它会找到它,但如果我搜索 Miunntain~5 它又找不到任何东西。

我应该补充一点,我创建了一个自由文本分析方案,没有词干提取、停用词或同义词。这是用于 text.

类型的地址字段的内容

我应该如何设置 CloudSearch 才能执行此类查询?

  1. 查询 'Amphitheatre Parkway, Muntain View'~5 实际上是在执行 fuzzy/sloppy phrase 搜索,它在其中搜索彼此相距 5 个词的那些词.我不认为那是你想要的。

  2. Miunntain~5 查询真的很有趣:它确实 return 没有结果,但是 miunntain~5(小写的 m)有:

    我确实注意到,在我的查询中,在小写和大写之间切换确实会稍微影响匹配分数,所以大写 M 可能只是让它的匹配太弱。我对此没有很好的解释;这肯定是违反直觉的,所以这可能是一个错误。

  3. 最后,关于设置 CloudSearch 来处理这些查询的实际问题:不幸的是,CloudSearch 没有公开 Solr 的 "Did you mean..." 拼写检查功能,因此没有真正好的方法这个;在事情上拍一些 tildas 是你能做的最好的事情。

http://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html