Elasticsearch的suggest联想提示查询实现

思路

  1. 先将关键字在completions 自动补全索引库中查询,获取建议的补全信息
  2. 如没有获取到补全信息,可能表示用户输入的关键词有拼写错误,在articles索引库中进行纠错建议查询

实现

在toutiao-backend/toutiao/resources/search.py中实现自动补全视图

class SuggestionResource(Resource):"""联想建议"""def get(self):"""获取联想建议"""qs_parser = RequestParser()qs_parser.add_argument('q', type=inputs.regex(r'^.{1,50}$'), required=True, location='args')args = qs_parser.parse_args()q = args.q# 先尝试自动补全建议查询query = {'from': 0,'size': 10,'_source': False,'suggest': {'word-completion': {'prefix': q,'completion': {'field': 'suggest'}}}}ret = current_app.es.search(index='completions', body=query)options = ret['suggest']['word-completion'][0]['options']# 如果没得到查询结果,进行纠错建议查询if not options:query = {'from': 0,'size': 10,'_source': False,'suggest': {'text': q,'word-phrase': {'phrase': {'field': '_all','size': 1}}}}ret = current_app.es.search(index='articles', doc_type='article', body=query)options = ret['suggest']['word-phrase'][0]['options']results = []for option in options:if option['text'] not in results:results.append(option['text'])return {'options': results}

Elasticsearch的suggest联想提示查询实现相关推荐

  1. springboot集成elasticsearch,实现搜索提示补全功能

    springboot集成elasticsearch,通过实体类创建索引,实现搜索提示补全功能 文章目录 springboot集成elasticsearch,通过实体类创建索引,实现搜索提示补全功能 一 ...

  2. java实现sug,Elasticsearch搜索Suggest功能优化

    搜索Suggest需要优化问题: 怎么优化Suggest词库,提升Suggest词准确率 怎么提高响应速度 suggest词库获取 冷启动可以从内容中提取热词数据来解决,或者人工设置 挖掘搜索日志: ...

  3. Solr Suggest智能提示配置说明

    有时候,为了实现如下功能 以满足用户在输入个别单词的时候,能够自动联想提示,这样可以避免用户的冗余输入并提供一定的推荐,从而实现更好的交互效果和内容推广效果.这样的功能有很多实现方式,成熟的Solr其 ...

  4. elasticsearch根据某个字段来查询,以及通过时间筛选

    elasticsearch根据某个字段来查询,以及通过时间筛选 String startTime = "2021-06-01"; String endTime = "20 ...

  5. 【Elasticsearch】Elasticsearch的IndexSorting:一种查询性能优化利器

    1.概述 转载:Elasticsearch的IndexSorting:一种查询性能优化利器 前言 前两周写过一篇<基于Lucene查询原理分析Elasticsearch的性能>,在最后留了 ...

  6. java查询oracle数据库_Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询...

    本文主要向大家介绍了Oracle数据库之java 从Oracle数据库到处数据到Elasticsearch全文检索库进行全文查询,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. ...

  7. 查询客户时,提示“查询已超出200行,请限制查询“

    查询客户时,提示"查询已超出200行,请限制查询" 在EBS中,我们查询客户时如果输入的参数较少,系统会提示"查询已超出200行,请限制查询".如下图: 更新配 ...

  8. ElasticSearch 6.3版本(ES)查询人名关键字不拆词查询

    ElasticSearch 6.3版本(ES)查询关键字不拆词查询:类似mysql 的 like 语句. mysql的sql语法类似如下,采用大量like和locate语法,进行模糊查询,导致查询一个 ...

  9. 使用ElasticSearch完成百万级数据查询附近的人功能

    上一篇文章介绍了ElasticSearch使用Repository和ElasticSearchTemplate完成构建复杂查询条件,简单介绍了ElasticSearch使用地理位置的功能. 这一篇我们 ...

最新文章

  1. 32如何向Linux转,linux使用技巧32则
  2. 在LinearLayout中嵌套RelativeLayout来设置Button的位置(xml文件)
  3. UE4.18预览第一版发布,共享XR引擎层降低硬件支持难度
  4. 信息学奥赛一本通(1158:求1+2+3+...)
  5. Head First 设计模式 —— 策略设计模式
  6. jdk15不安装jre_弄懂 JRE、JDK、JVM 之间的区别与联系,你知道多少?
  7. 认清自我,不在迷茫!2019个人年终总结!
  8. 机器学习笔试面试整理
  9. 谷歌浏览器任何页面都打不开连设置也不能打开
  10. 谈谈用户体验与风控的平衡性
  11. 不同类型的轴承受力简介
  12. [转载]国内物联网平台初探(三):QQ物联智能硬件开放平台
  13. 2021秋季《数据结构》_EOJ 1091.六度空间
  14. android 开源_8个开源Android教育应用
  15. Jmeter压测运行原理,这些你知道么?
  16. 《安富莱嵌入式周报》第308期:开源带软硬件安全认证的PLC设计,开源功率计,可靠PID实现,PR2机器人设计文件全开源,智能手表设计WASP-OS
  17. ZYNQ7010教程(一)PL部分
  18. Linux Signal信号表
  19. 范围管理-输入、输出、工具和技术
  20. 混凝土外加剂建筑化学品的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告

热门文章

  1. (转)证券行业科技实践与前瞻
  2. 计算机知识电子小报,电脑小报的制作方法图解步骤
  3. C语言_3名学生4科成绩
  4. 是时候了解下Travis CI是什么了
  5. 用java编写cs游戏_Java CS训练小游戏
  6. kotlin中Activity跳转
  7. unity SRP Batcher与GPU instancing使用情况
  8. 程序员的个性签名php,程序员的qq个性签名
  9. COMException的错误代码可以帮助解决Arcgis Engine中的Bug
  10. 古币杂谈:楚国鬼脸钱