如何使用GET API请求在AWS Cloud Search中执行部分字符串搜索

时间:2018-10-30 11:22:11

标签: ios amazon-web-services amazon-cloudsearch

我想在AWS Cloud Search API中搜索整个字符串以及部分字符串,

我有以下格式的可用数据,

[
{
  'name' : 'John',
  'specialities' : [
     'ios',
     'swift',
     'react native'
  ]
}, 
{
  'name' : 'Karl',
  'specialities' : [
     'ios developer',
  ]
}, 
{
  'name' : 'Maria',
  'specialities' : [
     'android developer',
  ]
}
]

现在我要实现的是如果我触发查询以搜索“ ios开发人员”,那么它应该返回Karl,John,Maria这三个记录。

因为按照我的要求,Karl完全匹配了我要获取的字符串,但是John拥有了“ ios”,而Maria拥有了“ developer”这个词,我想将其匹配。

根据AWS文档,它们允许单词的完全匹配,这就是为什么我没有得到期望的结果的原因。

我已在下面引用了相关文档: https://docs.aws.amazon.com/cloudsearch/latest/developerguide/searching-text.html#searching-text-phrases

1 个答案:

答案 0 :(得分:0)

从这些文档中,您正在寻找的是|

  

|-在搜索结果中甚至包含包含该术语的文档   如果它们不包含其他术语。 |运算符仅适用于   个别条款。例如,要包含包含以下内容的文档   请指定两个术语之一:term1 | term2。正在搜寻   search?q = star wars | trek包含同时包含star和   战争,或“迷航”一词。

例如ios |developer

如果您只想将结果限制为specialities字段,则仍可以使用带有选项的简单解析器:

例如q='ios |developer'&q.options={fields: ['specialities']}.

请注意,您需要对该字符串进行url编码。大多数语言都有解决方案,或者您可以使用https://www.url-encode-decode.com/

这样的在线工具来解决此问题