AWS Cloudsearch电子邮件查询

时间:2017-03-03 08:44:08

标签: amazon-web-services amazon-cloudsearch

我在电子邮件中遇到CloudSearch的问题

例如,我的搜索查询为host/search?predicate=aleks@email.com

我已将字符串${predicate}* | ${predicate}定义为我的查询,并且我一直在尝试搜索电子邮件字段。因此,只有在我一直试图在“@”符号(alex)或完整请求(alex@email.com)之前查询任一部分的情况下,我才会收到回复。

我已经研究过CloudSearch limits,但我最终没弄明白:是否可以通过“@”符号传递字符串?有没有人解决了这个问题?

2 个答案:

答案 0 :(得分:2)

http://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html @是打破字符串部分的字符之一。因此,您需要将@替换为其他内容 对于英语单词破坏规则,您需要禁用词干。

答案 1 :(得分:1)

是谓词字段text还是literal?它现在看起来像是文本,因此cloudsearch会阻止电子邮件,因为它会被绑定并存储为aleks email com,因此当您搜索时aleksemail有效。您可以设置电子邮件字段literal类型,以便cloudsearch不会因此而导致查询适用于ale*alek*,因此您可以使用${predicate}* | ${predicate}

注意:literal将区分大小写搜索,因此如果您想要不区分大小写的搜索,则可能需要在发送到Cloudsearch之前使用downcase值