在kibana中,创建索引库和映射(仅供参考,可自行调整):
PUT courier_task
{
"settings": {
"index.max_ngram_diff":12,// ngram分词器设置最大最小步长间隔
"analysis": {
"analyzer": {// 自定义分词器
"code_analyzer": {// 编码类分词器,适用于手机号和运单号
"tokenizer": "code_tokenizer"
},
"name_analyzer":{// 姓名分词器
"tokenizer": "name_tokenizer",
"filter": "py" // 分词后再用拼音分词器过滤
}
},
"tokenizer": {
"code_tokenizer": {
"type": "ngram",
"min_gram": 4,
"max_gram": 15,
"token_chars": [
"letter",
"digit"
]
},
"name_tokenizer": {
"type": "ngram",
"min_gram": 2,
"max_gram": 10,
"token_chars": [
"letter",
"digit"
]
}
},
"filter": {// 自定义tokenizer filter
"py":{// 过滤器名称
"type": "pinyin",// 过滤器类型,这个自定义的过滤器使用的是pinyin分词器
"keep_full_pinyin": false,//不要把单个字ch
"keep_joined_full_pinyin": true,//把词语转成全拼
"keep_original": true,//转完之后的中文保留
"limit_first_letter_length": 16,//转成的拼音首字母不能超过16个
"remove_duplicated_term": true,//转成的拼音不能有重复的,重复的删掉
"none_chinese_pinyin_tokenize": false
}
}
}
},
"mappings": {
"properties": {
"actualEndTime" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"actualStartTime" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"address" : {
"type" : "text"
},
"agencyId" : {
"type" : "long"
},
"courierId" : {
"type" : "long"
},
"created" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"estimatedEndTime" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"estimatedStartTime" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
},
"id" : {
"type" : "keyword"
},
"isDeleted" : {
"type" : "keyword"
},
"name" : {
"type" : "text",
"analyzer": "name_analyzer",
"search_analyzer": "keyword"
},
"orderId" : {
"type" : "long"
},
"phone" : {
"type" : "text",
"analyzer": "code_analyzer",
"search_analyzer": "keyword"
},
"status" : {
"type" : "keyword"
},
"taskType" : {
"type" : "keyword"
},
"transportOrderId" : {
"type" : "text",
"analyzer": "code_analyzer",
"search_analyzer": "keyword"
},
"updated" : {
"type" : "date",
"format" : "yyyy-MM-dd HH:mm:ss"
}
}
}
}