Es 建议器

Es 建议器

  • 浏览器的建议功能

img

  • 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 : 它是完成建议器的扩展,允许我们根据词条或分类亦或是地理位置对结果进行过滤。
posted @   染指未来  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示