elasticsearch Elasticsearch突出显示完整单词而不是查询字符串,elasticsearch,yii2,elasticsearch,Yii2" /> elasticsearch Elasticsearch突出显示完整单词而不是查询字符串,elasticsearch,yii2,elasticsearch,Yii2" />

elasticsearch Elasticsearch突出显示完整单词而不是查询字符串

elasticsearch Elasticsearch突出显示完整单词而不是查询字符串,elasticsearch,yii2,elasticsearch,Yii2,我正在尝试用elasticsearch和yii2框架实现自动完成。我正在获取搜索结果,但子字符串高亮显示不起作用,例如,如果我搜索uni它将返回“UnitedStates”,而不是“united States”。以下是索引设置: 'settings' => [ 'number_of_shards' => 1, 'analysis' => [ 'analyzer' => [ "autocomplete" => [

我正在尝试用elasticsearch和yii2框架实现自动完成。我正在获取搜索结果,但子字符串高亮显示不起作用,例如,如果我搜索uni它将返回“UnitedStates”,而不是“united States”。以下是索引设置:

'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的插件,可以为文本区域和输入字段添加高亮显示。您将有输入字符串。谢谢,我将尝试这个。