用了Elasticsearch,一口气上5T

有没有 ngram 和 wildcard 折中方案?

Elasticsearch | 作者 cht | 发布于2019年01月18日 | 阅读数:2686

想支持英文的部分搜索,比如 good,搜索oo也可以匹配出来。这就需要 ngram,但是 ngram 使得 index 占用空间10X+增大,有点无法接受。wildcard 搜索效率又实在太低。有什么折中方案么?
已邀请:

ccsy

赞同来自:

设置一下ngram的长度

rochy - rochy_he

赞同来自:

你可以试试前缀搜索
good 你分词为 good/ood/od/ 
这样使用前缀搜索就可以实现你需要的效果;
同时设置一下 mapping,可进一步加快搜索速度
"index_prefixes": {
"min_chars": 1,
"max_chars": 10
}

要回复问题请先登录注册