我目前正在迁移到2013 Cloudsearch API(从2011 API开始)。以前,我一直在搜索中使用通配符前缀,如下所示:

bq=(and 'first secon*')

我的查询有时包含构面选项,这就是为什么我使用布尔查询语法而不是简单版本的原因。

我使用2013引擎创建了一个新的cloudsearch实例并将其编入索引。 bq参数现在不见了,因此我必须将q参数与q.parser=structured参数一起使用才能获得相同的功能。当我用这样的查询:
q.parser=simple&q=first secon*

...我得到了很多结果。但是当我用这个查询:
q.parser=structured&q=(prefix 'first secon')

...我没有命中。我没有收到错误,只是没有找到结果。难道我做错了什么?

我刚刚意识到,如果我使用2013 API对词firs进行前缀搜索,则前缀搜索似乎可以正常工作。但是如果我在查询中有多个词,例如first secon,则前缀搜索不起作用。那么,如何使用结构化前缀运算符来完成此操作?

最佳答案

您需要为每个单独的查询词指定前缀运算符,例如:
q=(or (prefix 'firs') (prefix 'secon'))&q.parser=structured

关于amazon-web-services - 如何通过AWS CloudSearch使用结构化前缀运算符进行通配符搜索,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31970512/

10-15 16:32