Es 建议器
Es 建议器
- 浏览器的建议功能
-
es中 通过 _search 做建议器
PUT s1 { "mappings": { "doc": { "properties": { "title": { "type": "text", "analyzer": "standard" } } } } } PUT s1/doc/1 { "title": "Lucene is cool" } PUT s1/doc/2 { "title":"Elasticsearch builds on top of lucene" } # 建议查询 # 1. my_suggest 是建议器的名称 # 2. text 是 es 返回的建议结果 # 3. field 是字段生成建议 GET s1/doc/_search { "query": { "match": { "title": "Lucene" } }, "suggest": { "my_suggest": { "text": "Elasticsear lucen", "term": { "field": "title" } } } }
-
es 设计了
4
种建议器- 词条建议器 term : 对于给定文本的每个词条,该键议器从索引中抽取要建议的关键词,这对于短字段(如分类标签)很有效。
- 词组建议器 phrase : 可以认为它是词条建议器的扩展,为整个文本(而不是单个词条)提供了替代方案,它考虑了各词条彼此临近出现的频率,使得该建议器更适合较长的字段,比如商品的描述
- 完成建议器 completion : 该建议器根据词条的前缀,提供自动完成的功能(智能提示,有点最左前缀查询的意思),为了实现这种实时的建议功能,它得到了优化,工作在内存中。所以,速度要比之前说的
match_phrase_prefix
快的多 - 上下文建议器 context : 它是完成建议器的扩展,允许我们根据词条或分类亦或是地理位置对结果进行过滤。