1.设置mapping
'content' => [
'type' => 'text',
'analyzer' => 'my_synonyms',
'fields' => [
'pinyin' => [
'type' => 'text',
'analyzer' => 'pinyin'
],
'suggest' => [
// completion用前缀搜索的特殊结构
'type' => 'completion',
'analyzer' => 'ik_max_word'
]
]
]
2.进行搜索
// 搜索建议
public function getsuggest()
{
$params = [
'index' => 'ynews',
'type' => 'y_doc',
'body' => [
'suggest' => [
'my_suggest' => [
// 前缀搜索
'prefix' => '中国',
'completion' => [
'field' => 'content.suggest',
// 对结果进行去重
'skip_duplicates' => true
]
]
]
]
];
$result = $this->es->search($params);
var_dump($result);
}
3.搜索结果
对这样一组数据进行搜索
结果如下