当我搜索“ bcde”时,我希望获得以下所有匹配项:
'abcde'
'bcdef'
'abcdef'
在AWS cloudsearch中(最好使用简单的查询解析器)实现此结果的方法是什么?前缀不会给我第一个结果。还有其他办法吗?
最佳答案
经过几次尝试并没有成功。我决定如下:
我创建了一个文本数组字段,并将其从头到尾部分地存储在字符串中,并且有效。
例如:我的字符串是“ abcde”,我搜索bcde。这行不通
但在我的字段中,文本字段将是以下字符串:
e,de,cde,bcde,abcde。因此,您会发现“ abcde”,因为他会在文本数组字段中找到该术语。
哦,伙计,但是如果我搜索bcd,则该术语不在文本数组字段中。
除了字符串“ bcde”以“ bcd”开头之外,一切正常! =)
我要插入的php文件如下所示:
$term = "abcde";
$arrStr = str_split($term);
$arrTerms = [];
$aux = 1;
foreach($arrStr as $str){
$arrTerms[] = substr($term,($aux * -1));
$aux++;
}
$data = [
'type' => 'add',
'id'=> [your_id],
'fields' => [
'id'=> [your_id],
'field-text' => $term
'field-text-array' => $arrTerms
],
];