应用背景需求
国内对中文文本的检索,在大数据场景应用,大量依赖es,es对中文分词的大数据场景提供了很大的支撑
es虽可串连其他大数据组件,但分词检索部分较难脱离es的束缚,因此es成了,中文分词场景下,反而又成了大数据场景应用的瓶颈
同时es集群的承载能力有限,又成为整个系统的瓶颈所在,减小es的压力的各种办法,如果无法做到在es外完成分词,终究效果有限
目前页面有多项较为优化的多维olap大数据组件,但通常的olap都是结构化数据,受限于中文分词,业内各种olap方案,都无法充分大规模的应用
难点概述
因此需要打通es内中文分词/检索和其他大数据组件,技术上为,实现脱机es集群环境,但与es集群兼容的lucene应用
这是业内很普遍的需求,但是很意外的没找到相关实现方案
真正尝试解决才发现并不像想象中的简单
常规的term, range 匹配,范围查找,没有什么困难,其他大数据组件都有相应的处理办法,最困难的是分词字段
es基于lucene做分词检索,但在lucene之上做了大量的封装和扩展
不考虑es,在mr/spark/flink/hive sql 等大数据组件内只应用lucene作分词,这样实现也很简单,但要完全兼容es的分词,就较为困难了,我个人在2019-2020并没有找到相关资料
这个问题其实已经解决了,只是总结下当时的解决思路
这篇算是目录
整体规划上 es和lucene 会有三到五篇
结合中文分词再有三到五篇
在大数据上的应用,会看时间,也是三到五篇
query String 和lucene是核心也是初衷