我想在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
答案 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/
这样的在线工具来解决此问题