AWS Cloudsearch 电子邮件查询
AWS Cloudsearch email query
我通过电子邮件遇到了 CloudSearch 问题
例如,我的搜索查询是host/search?predicate=aleks@email.com
我已将字符串 ${predicate}* | ${predicate}
定义为我的查询,并且我一直在尝试在电子邮件字段中进行搜索。结果,只有在我一直尝试查询“@”符号(alex
)或完整请求(alex@email.com
)之前的任何一部分时,我才会得到响应。
我研究了CloudSearch limits,但最后没弄明白:是否可以传递带有“@”符号的字符串?有人解决了这个问题吗?
谓词字段是text
还是literal
?。看起来它现在是文本,所以 cloudsearch 提取了电子邮件,这就是为什么它将被提取并存储为 aleks email com
,因此 aleks
或 email
在您搜索时有效。您可以将电子邮件字段设置为 literal
类型,这样 cloudsearch 就不会在这种情况下查询将适用于 ale*
、alek*
,因此您可以使用 ${predicate}* | ${predicate}
注意:literal
将进行区分大小写的搜索,因此如果您想要不区分大小写的搜索,您可能必须在发送到 cloudsearch 之前将值小写
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html
@
是会中断字符串部分的字符之一。因此,您需要将 @
替换为其他内容。
对于英文分词规则,您需要禁用词干提取。
我通过电子邮件遇到了 CloudSearch 问题
例如,我的搜索查询是host/search?predicate=aleks@email.com
我已将字符串 ${predicate}* | ${predicate}
定义为我的查询,并且我一直在尝试在电子邮件字段中进行搜索。结果,只有在我一直尝试查询“@”符号(alex
)或完整请求(alex@email.com
)之前的任何一部分时,我才会得到响应。
我研究了CloudSearch limits,但最后没弄明白:是否可以传递带有“@”符号的字符串?有人解决了这个问题吗?
谓词字段是text
还是literal
?。看起来它现在是文本,所以 cloudsearch 提取了电子邮件,这就是为什么它将被提取并存储为 aleks email com
,因此 aleks
或 email
在您搜索时有效。您可以将电子邮件字段设置为 literal
类型,这样 cloudsearch 就不会在这种情况下查询将适用于 ale*
、alek*
,因此您可以使用 ${predicate}* | ${predicate}
注意:literal
将进行区分大小写的搜索,因此如果您想要不区分大小写的搜索,您可能必须在发送到 cloudsearch 之前将值小写
http://docs.aws.amazon.com/cloudsearch/latest/developerguide/text-processing.html
@
是会中断字符串部分的字符之一。因此,您需要将 @
替换为其他内容。
对于英文分词规则,您需要禁用词干提取。