Elasticsearch——04全文搜索服务器_ES集成ik分词器&类型文档映射
开发十年,就只剩下这套架构体系了! >>>
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会尝试对字段类型进行猜测,并动态生成字段和类型的映射关系。
②自定义映射
type |
类型:基本数据类型,integer,long,date,boolean,keyword,text... |
enable |
是否启用:默认为true。 false:不能索引、不能搜索过滤,仅在_source中存储 头像路径 |
boost |
权重提升倍数:用于查询时加权计算最终的得分。 |
format |
格式:一般用于指定日期格式,如 yyyy-MM-dd HH:mm:ss.SSS |
ignore_above |
长度限制:长度大于该值的字符串将不会被索引和存储。 |
ignore_malformed |
转换错误忽略:true代表当格式转换错误时,忽略该值,被忽略后不会被存储和索引。 |
include_in_all |
是否将该字段值组合到_all中。 |
null_value |
默认控制替换值。如空字符串替换为”NULL”,空数字替换为-1 |
store |
是否存储:默认为false。true意义不大,因为_source中已有数据 |
index |
索引模式:analyzed (索引并分词,text默认模式), not_analyzed (索引不分词,keyword默认模式),no(不索引) |
analyzer |
索引分词器:索引创建时使用的分词器,如ik_smart,ik_max_word,standard |
search_analyzer |
搜索分词器:搜索该字段的值时,传入的查询内容的分词器。 |
fields |
多字段索引:当对该字段需要使用多种索引模式时使用。 如:城市搜索New York "city": { "type": "text", "analyzer": "ik_smart", "fields": { "raw": { "type": "keyword" } } } city分词 city.raw 不分词 那么以后搜索过滤和排序就可以使用city.raw字段名 |
注意:如果已经有数据,不能直接做映射,先删除掉,在添加映射,再添加数据.
③全局映射
默认映射-->全局映射->自定义映射
④优秀实践
- 有数据不做映射
- 根据优先级倒序来
步骤1:
- 删库
- 建库
- 做全局映射
- 自定义映射
- javaAPI做crud+查询
- Elasticsearch——04全文搜索服务器_ES集成ik分词器&类型文档映射
- 搜索学习--Elasticsearch全文搜索服务器的基本使用
- Elasticsearch——01全文搜索服务器_概念&比较
- Elasticsearch——02全文搜索服务器_服务端/客户端安装
- Elasticsearch——03全文搜索服务器_交互协议Restful&ES命令操作
- Spring Data Elasticsearch加Elasticsearch服务实现全文搜索
- ElasticSearch全文搜索小案例
- ElasticSearch5.6.1索引、类型、文档的增删查改--利用RESTful接口和Kibana可视化工具
- 监视服务器实例上的全文搜索活动
- 全文搜索应用 企业搜索SearchBlox
- ElasticSearch + Canal 开发千万级的实时搜索系统
- elasticsearch多字段搜索
- 分布式搜索Elasticsearch——创建客户端(五)
- 分布式搜索Elasticsearch——MultiSearch
- ElasticSearch服务器操作命令
- 分布式搜索Elasticsearch——创建客户端(五)
- 谈谈对搜索技术Elastic Search&Lucene的理解
- php header Content-type:所有文件类型 文档类型及服务器响应类别
- plainelastic.net elasticsearch实现搜索业务
- “/”应用程序中的服务器错误。 找到了多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由没有指定命名空间来搜索匹配此请求的