首页 > 解决方案 > 自动完成弹性搜索

问题描述

我在这里跟随 elasticsearch 的完成建议的教程。这很容易上手。但是我无法完成一个以上的单词。在示例中,单个不完整的单词给出了很好的结果,例如

"Nir"->"options":[{"text":"Nevermind Nirvana..."

"Nev"->"options":[{"text":"Nevermind Nirvana..."

但以下失败:

"Nirvana Nev"->Nothing!

"Nevermind Nir"->Nothing!

我可以通过填充组合选项来使其工作,例如

curl -X PUT "localhost:9200/music/_doc/1?refresh" -H 'Content-Type: application/json' -d'
{
    "suggest" : {
        "input": [ "Nevermind", "Nirvana", "Nirvana Nevermind", "Nevermind Nirvana" ],
        "weight" : 34
    },
    "title" : "Nevermind by Nirvana"
}
'

但是这种方法很快就会导致输入中添加大量文本变体。

一定会有更好的办法?

标签: elasticsearch

解决方案


推荐阅读