项目实现的需求
- 基本Elasticsearch 7.6.2版本,Spring boot 2.2x的全文检索系统。
- 支持IK分词——重写IK源码来支持基于Mysql热更新词库,刷新历史文档。
- 支持拼音检索——重写拼音源码彻底解决搜索出同音字的问题。
- 支持通俗语言搜索,比如人们经常叫呼和浩特为青城,搜索“青城”可以搜出呼和浩特。
- 支持搜索推荐——Suggest,支持拼音推荐,比如输入“shen”,可以推荐出“[身份证],[沈xxx]”等,但是输入“shen份”时只能搜出“[身份xxx],[沈份xxx]”等,不会出现“身粉xxx”等同音字词语。
- 支持汉字词组纠错功能,比如搜索“身分证”会匹配出“身份证”等。
- 场景化搜索——搜索“身份证”会出现单独设计的页面,支持配置需要场景化的关键词。
- 搜索精度——搜索“身份证”或者“shenfenzheng”时,搜索结果只会标红文本中的身份证,不会标红其他无关字词,例如毕业证,政务服务等。
- 支持高级检索——全部关键词、任意关键词、不包含的关键词、按时间排序(一周内、一月内、一年内和自定义时间段),按相关度排序、全文搜索、仅标题搜索等。
- 统计搜索日志——包括搜索内容、时间、IP、地域、终端、浏览器等 。聚合搜索日志,分析出热搜排行。
效果图片案例
- 搜索“neimenggu”,可以搜索并标红出与“内蒙古”相关的数据。
- 当然,搜索“内蒙古”是同样的效果。
- 搜索提示给出了【内蒙古自治区】和【内蒙古自治区人民政府】的提示。
- 右侧给出相关推荐和搜索排行等。
当搜索“身份证”时,可以看到身份证的场景化效果。