当我搜索“ 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

    ],
];

10-08 07:54