如何使用带有AWS CloudSearch的结构化前缀运算符进行通配符搜索

RTF*_*RTF 2 search-engine amazon-web-services amazon-cloudsearch

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

bq=(and 'first secon*')  
Run Code Online (Sandbox Code Playgroud)

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

我使用2013引擎创建了一个新的cloudsearch实例并将其编入索引.在bq现在的参数已经一去不复返了,所以我不得不使用q参数与q.parser=structured参数,以获得相同的功能.当我用这样的东西查询时:

q.parser=simple&q=first secon*
Run Code Online (Sandbox Code Playgroud)

......我收到了大量的结果.但是当我查询时:

q.parser=structured&q=(prefix 'first secon')
Run Code Online (Sandbox Code Playgroud)

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

我刚刚意识到,如果我firs使用2013 API 对单词进行前缀搜索,则前缀搜索似乎正在起作用.但是如果我在查询中只有一个单词,first secon那么前缀搜索就不起作用了.那么如何使用结构化前缀运算符完成?

ale*_*sos 6

您需要为每个单独的查询字词指定前缀运算符,例如:

q=(or (prefix 'firs') (prefix 'secon'))&q.parser=structured

  • 没关系,我已经能够达到我想要的效果:`q =(和(术语'第一')(或(术语'secon')(前缀'secon')))`我想这是你得到了什么. (2认同)