一、elasticsearch
1.1 分词器
- 根据文档创建倒排索引的时候进行分词。
- 用户搜索,根据输入内容进行分词。
1.2 ik分词器的模式
- ik_smart:智能切分
- ik_max_word:最细切分
1.3 拓展词条
- 修改/elasticsearch-analysis-ik-7.17.2/config下的IKAnalyzer.cfg.xml,增加ext.dic(拓展的分词)和stopword.dic(不分的词)
2.1 mapping属性
type
字段的数据类型,常见字符串有text(可分词)、keyword(j精确值,如国家、品牌、ip)
数值分为long、integer、short、double、byte、float
布尔:boolean
日期:date
对象:objectindex
是否创建索引,默认为trueanallyzer
分词器,只能结合text用。
properties
该字段的子字段,例如姓和名
2.2 索引库操作
- 创建索引库
PUT /hzxy
{
“mappings”: {
“properties”: {
“schoolName”:{
“type”: “text”
, “analyzer”: “ik_smart”
},
“email”:{
“type”:“keyword”,
“index”: false
},
“studentName”:{
“properties”: {
“firstName”:{
“type”:“keyword”
},
“lastName”:{
“type”:“keyword”
}
}
}
}
}
}
- 查看索引库
get /hzxy- 删除
delete /hzxy- 禁止修改索引库,修改后倒排索引会全部失效,但允许添加新字段
PUT /hzxy/_mapping
{
“properties”:{
“studentNum”:{
“type”:“integer”
}
}
}
2.3 文档的操作
- 新增文档
POST /hzxy/_doc/1
{
“email”:“5101919@qq.com”,
“studentName”:{
“firstName”:“三”,
“lastName”:“张”
},
“schoolName”:“贺州学院”,
“studentNum”:120
}
- 删除文档
DELETE /hzxy/_doc/1- 查询文档
GET /hzxy/_doc/1
修改文档
- 全量修改(存在先全部清除在添加,不存在直接添加)
PUT /hzxy/_doc/1
{
“email”:“51019”,
“studentName”:{
“firstName”:“五”,
“lastName”:“王”
},
“schoolName”:“贺州学院”,
“studentNum”:120
}- 局部修改
POST /hzxy/_update/1
{
“doc”: {
“studentNum”:130
}
}