一、索引库操作
1、mapping属性
mapping是对索引库中文档的约束,常见的mapping属性包括:
1)type:字段数据类型,常见的简单类型有:
①字符串:text(可分词的文本)、keyword(精确值,如品牌、国家、ip等不拆分的数据,这种拆分没意义)
②数值:long、integer、short、byte、double、float(es的底层是用java实现的,所以和java一致)
③boolean
④date
⑤object对象,对象可以任意嵌套,对象的子属性可以参与搜索
注:es没有数组,但是允许每个类型有多个值
2)index:是否创建倒排索引
默认为true(创建),为所有的字段都创建倒排索引。false不参与搜索,像商品的图片是个url这种就不需要参与搜索,并不是所有的字段都需要创建搜索。
3)analyzer:使用哪种分词器
4)properties:该字段的子字段,可以用于指定object的子字段
2、创建索引库
ES中通过Restful请求操作索引库、文档。请求内容用DSL语句来标识。创建索引库和mapping的DSL语法如下:
测试
PUT /student
{
"mappings":{
"properties":{
"info":{"type":"text","analyzer":"ik_smart"},--如果指定text类型必须指定分词器,否则分词有问题
"email":{"type":"keyword","index":"false"},
"name":{"properties":{"firstName":{"type":"keyword"}},...也可以有lastName}
}
}
}