elasticsearch Elasticsearch突出显示完整单词而不是查询字符串
我正在尝试用elasticsearch和yii2框架实现自动完成。我正在获取搜索结果,但子字符串高亮显示不起作用,例如,如果我搜索uni它将返回“UnitedStates”,而不是“united States”。以下是索引设置:elasticsearch Elasticsearch突出显示完整单词而不是查询字符串,elasticsearch,yii2,elasticsearch,Yii2,我正在尝试用elasticsearch和yii2框架实现自动完成。我正在获取搜索结果,但子字符串高亮显示不起作用,例如,如果我搜索uni它将返回“UnitedStates”,而不是“united States”。以下是索引设置: 'settings' => [ 'number_of_shards' => 1, 'analysis' => [ 'analyzer' => [ "autocomplete" => [
'settings' => [
'number_of_shards' => 1,
'analysis' => [
'analyzer' => [
"autocomplete" => [
"type" => "custom",
"tokenizer" => "standard",
"filter" => ["lowercase", "autocomplete_filter"],
],
],
'filter' => [
"autocomplete_filter" => [
"type" => "edge_ngram",
"min_gram" => 2,
"max_gram" => 15,
],
],
],
],
'properties' => [
'id' => ['type' => 'integer'],
'name' => [
'type' => 'string',
"analyzer" => "autocomplete",
"search_analyzer" => "standard",
],
'email' => ['type' => 'string'],
]
请告诉我如何做到这一点。我之前研究过这一点,这在elastic中是不可能的,突出显示是在字段数据上进行的。检查elastic的官方自动完成搜索,并检查网络方面,您将观察到他们的api也会返回完整的突出显示文字,他们在JS中处理前端的突出显示部分(他们将前端的JS部分更改/删除,以用于api中的突出显示文本).你能给我举个例子吗?如何在前端使用JavaScript实现这一点。在前端使用jquery构建突出显示的字符串。这是一个很好的基于jquery的插件,可以为文本区域和输入字段添加高亮显示。您将有输入字符串。谢谢,我将尝试这个。