搜索引擎-应用篇(suggest search)

背景

前缀搜索 联想提示功能
在这里插入图片描述

原理探究

ES实现suggest的时候,性能非常高

  • 其构建的不是倒排索引,也不是正排索引,就是纯的用于进行前缀搜索的一种特殊的数据结构
  • 全部放在内存中
    所以suggest search进行的前缀搜索提示,性能是非常高。

DSL

在定义index时,为其mapping指定开启suggest

PUT /movie
{
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "ik_max_word",
        "fields": {
          "suggest": { //这个名字可以随便起,这里取名为suggest
            "type": "completion", //类型是completion,就是自动补全
            "analyzer": "ik_max_word" //采用的分词器
          }
        }
      },
      "content": {
        "type": "text",
        "analyzer": "ik_max_word"
      }
    }
  }
}

插入三条测试数据

PUT /movie/_doc/1
{
"title": "西游记电影系列",
"content": "西游记之月光宝盒将与2021年进行......"
}
 
PUT /movie/_doc/2
{
"title": "西游记文学系列",
"content": "某知名网络小说作家已经完成了大话西游同名小说的出版"
}
 
PUT /movie/_doc/3
{
"title": "西游记之大话西游手游",
"content": "网易游戏近日出品了大话西游经典IP的手游,正在火爆内测中"
}

suggest 搜索

GET /movie/_search
{
  "suggest": {//这个字段是关键字,不能随便起名
    "my-suggest": { // 这个是自己起的名字
      "prefix": "西游记", // 这个是前缀
      "completion": {
        "field": "title.suggest" //这个是你自己定义的索引
      }
    }
  }
}

存在问题

归属模糊搜索的【前缀匹配】
以关键字开头的文本, 并没有关键字在中间的!
在这里插入图片描述

参考文档&案例

ElasticSearch的搜索建议功能

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

机智的路易

用爱发电是走不远的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值