创建自定义pattern 并创建啊mapping
注意: 集群是es6.x 版本
PUT courses2
{
"settings":{
"analysis":{
"analyzer":{
"my_analyzer":{
"type":"pattern",
"pattern":"."
}
}
}
},
"mappings":{
"_doc":{
"properties": {
"id": {
"type": "keyword"
},
"grade": {
"type": "keyword"
},
"subject": {
"type": "keyword"
},
"course": {
"type": "text",
"analyzer": "standard",
"fields": {
"english": {"type" : "text" ,"analyzer": "thai"},
"simple": {"type" : "text" ,"analyzer": "my_analyzer"},
"raw" : {
"type" : "keyword"
}
}
},
"pay": {
"type": "integer"
},
"pattern": {
"type": "integer"
},
"teachername": {
"type": "text",
"analyzer": "standard",
"fields": {
"english": {"type" : "text" ,"analyzer": "thai"},
"simple": {"type" : "text" ,"analyzer": "my_analyzer"},
"raw" : {
"type" : "keyword"
}
}
},
"teacherid": {
"type": "keyword"
},
"createtime": {
"type": "long",
"fields": {
"raw": {
"type": "keyword"
}
}
},
"updatetime": {
"type": "long"
},
"score": {
"type": "float"
},
"classstatus": {
"type": "integer"
},
"status":{
"type": "integer"
},
"gradenum":{
"type": "long"
},
"subjectnum":{
"type": "long"
},
"releasedtime":{
"type": "long",
"fields": {
"raw": {
"type": "keyword"
}
}
}
}
}
}
}
Pattern 分词器介绍
pattern analyzer | whitespace | 正则表达式分词,默认匹配\W+ |
接下来是一些验证查询的方法
GET /courses2/_search
{
"query" : {
"wildcard": { "teachername" : "a*" }
}
}
这里注意 wildcard 模糊搜索只支持 小写 并且要加上* 才能搜索到
自定义分词器解析
"settings":{
"analysis":{
"analyzer":{ 分词器
"my_analyzer":{ 设置分词器名字
"type":"pattern", 分词器类型
"pattern":"." 以.为分隔符 注这里也可以写正则表达式 一般是用来处理复杂数据的
}
}
}
},
mapping 解析
"teachername": {
"type": "text",
"analyzer": "standard", 设置主分词器
"fields": {
"english": {"type" : "text" ,"analyzer": "thai"}, 设置副分词器 为泰语分词器
"simple": {"type" : "text" ,"analyzer": "my_analyzer"}, 设置 副分词器自定义分词器
"raw" : {
"type" : "keyword"
}
}
},
注意 如果自定义分词器不为 副分词器,会报错 all shard filed 。