1.ES集成ik分词器
lucene由于是jar工具包,如果要在使用lucene的环境下使用ik分词器,只需导入对应jar,做一些配置就行.
以插件的方式集成ES服务器,客户端只需告诉我们某个字段要用这个分词器就行了。
步骤:
①服务端安装ik插件
②客户端端指定字段用插件
安装:
1)下载源码:https://github.com/medcl/elasticsearch-analysis-ik
2)maven打包:mvn package
3)安装到es服务器
解压到es/plugins
4)配置
5)重启
测试:
#测试ik分词器
POST _analyze
{
"analyzer":"ik_smart",
"text":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"
}
2.类型文档映射
ES的文档映射(mapping)机制用于进行字段类型或分词器确认,将每个字段匹配为一种确定的数据类型。-就相当于在设计表的时候为字段指定类型.
ES支持的数据类型:
① 基本字段类型
字符串:text(分词),keyword(不分词) StringField(不分词文本),TextFiled(要分词文本)
text默认为全文文本,keyword默认为非全文文本
数字:long,integer,short,double,float
日期:date
逻辑:boolean
② 复杂数据类型
对象类型:object
数组类型:array
地理位置:geo_point,geo_shape
①默认映射
ES在没有配置Mapping的情况下新增文档,ES会尝试对字段类型进行猜测,并动态生成字段和类型的映射关系。
②自定义映射
略(见word文档)
③全局映射
默认映射–>全局映射->自定义映射
④优秀实践
- 有数据不做映射
- 根据优先级倒序来
步骤1:
删库建库- 做全局映射
- 自定义映射
- javaAPI做数据操作+查询