我在电子邮件中遇到CloudSearch的问题
例如,我的搜索查询为host/search?predicate=aleks@email.com
我已将字符串${predicate}* | ${predicate}
定义为我的查询,并且我一直在尝试搜索电子邮件字段。因此,只有在我一直试图在“@”符号(alex
)或完整请求(alex@email.com
)之前查询任一部分的情况下,我才会收到回复。
我已经研究过CloudSearch limits,但我最终没弄明白:是否可以通过“@”符号传递字符串?有没有人解决了这个问题?
答案 0 :(得分:2)
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html
@
是打破字符串部分的字符之一。因此,您需要将@
替换为其他内容
对于英语单词破坏规则,您需要禁用词干。
答案 1 :(得分:1)
是谓词字段text
还是literal
?它现在看起来像是文本,因此cloudsearch会阻止电子邮件,因为它会被绑定并存储为aleks email com
,因此当您搜索时aleks
或email
有效。您可以设置电子邮件字段literal
类型,以便cloudsearch不会因此而导致查询适用于ale*
,alek*
,因此您可以使用${predicate}* | ${predicate}
注意:literal
将区分大小写搜索,因此如果您想要不区分大小写的搜索,则可能需要在发送到Cloudsearch之前使用downcase值