概述
背景
前缀搜索 联想提示功能
原理探究
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的搜索建议功能
最后
以上就是含糊蜗牛为你收集整理的搜索引擎-应用篇(suggest search)的全部内容,希望文章能够帮你解决搜索引擎-应用篇(suggest search)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复