自动不全—Completion Suggester
- Completion Suggester 提供了自动完成的功能。用户每输入一个字符,就需要即时发送一个查询请求到后端查找匹配项
- 对性能要求比较苛刻。Elasticsearch采用了不同的数据结构,并非通过倒排索引来完成。而是将Analyze的数据编码成FST和索引一起存放。FST会被ES整个加载进内存,速度很快
- FST只能用户前缀查找
- 使用步骤
- 定义Mapping,使用”completion”type
- 索引数据
- 运行”suggest”查询,得到搜索建议
基于上下文的提示—Context Suggester
- 可以定义两种类型的Context
- Category-任意的字符串
- Geo-地理位置信息
- 实现Context Suggester的具体步骤
- 定制一个Mapping
- 索引数据,并且为每个文档加入Context信息
- 结合Context进行Suggestion查询