【发布时间】:2018-12-07 16:06:10
【问题描述】:
我对文本/项目的自动完成/搜索如何在任何可扩展产品(如高级亚马逊电子商务/谷歌)中的高级工作的理解是:-
基于弹性搜索 (ES) 的方法
文档存储在 DB 中。一旦持久化给弹性搜索,它就会创建索引并将索引/文档(基于标记器)存储在内存或基于磁盘的 配置。
一旦用户输入3个字符,它会搜索ES下的所有索引(可以配置为甚至ngram索引),根据权重排名并返回给用户
但是在阅读了谷歌上的一些资源后,比如Trie based search
看起来一些可扩展的产品也使用Trie 数据结构来进行基于前缀的搜索。
我的问题是基于 trie 的方法可以很好地替代 ES 或 ES 内部使用 Trie 还是我完全错过了这里?
【问题讨论】:
标签: algorithm elasticsearch autocomplete trie