我们有一个使用cloudsearch来提供搜索结果的api。
我们在cloudsearch域上有2个索引,分别是index1和index2。
对于值"PQR-ABC"
, index1 存储文本"PQR-ABC"
,而 index2 是存储["PQR", "ABC", "PQRABC"]
的文本数组。
如果我们要搜索"ABC-"
,那么我们正在使用的查询是
(or index1:'ABC-' (or (prefix field=index2 'ABC') (prefix field=index2 'ABC-')))
即,我们正在对index1进行精确匹配,并在index2上进行前缀匹配(修饰为“-”)。
假设我们在"ABC"
和"PQR-ABC"
域中有文档:
"ABC"
将被索引为index1 => "ABC"
和index2 => ["ABC"]
。"PQR-ABC"
将被索引为index1 => "PQR-ABC"
和index2=> ["PQR", "ABC", "PQRABC"]
。 当我搜索ABC时,这两个结果都将返回。
我的问题是,在cloudsearch中有什么方法可以保证在具有“ PQR-ABC”的文档更相关之前,可以确保具有“ ABC”的文档将被返回?
谢谢。