java mapping是什么,让我们一起了解一下?
Mapping类似于数据库中的schema定义,Mapping会把json文档映射成Lucene所需要的扁平格式,一个Mapping属于一个索引的type。
Mapping的作用有哪些?
1、定义索引中的字段的名称。
2、定义字段的数据类型,如字符串,数字,布尔等。
3、字段,倒排索引的相关配置(是否分析,用那种分析器)。
如何更改Mapping的字段类型?
1、Dynamic设为true时,一旦有新增字段的文档写入,Mapping也同时被更新。
2、Dynamic设为false时,Mapping不会被更新,新增字段的数据无法被索引,但是信息会出现在_source中。
3、Dynamic设为strict,文档写入失败。
实战操作:具体代码示例如下:
PUT my_index
{
"settings": {
"analysis": {
"analyzer": {
#自定义分析器名称
"my_custom_analyzer":{
#类型,custom,自定义
"type":"custom",
#分词器,emotions,自定义,过滤表请
"char_filter":["emotions"],
#tokenizer自定义,过滤标点符号
"tokenizer":"punctuation",
#token filter 自定义english_stop,
"filter":[
"lowercase","english_stop"
]
}
},
"tokenizer": {
"punctuation":{
"type":"pattern",
"pattern":[".,!?"]
}
},
"char_filter": {
"emotions":{
"type":"mapping",
"mappings":["?=>happy"]
}
},
"filter": {
"english_stop":{
"type":"stop",
"stopwords":"english"
}
}
}
}
}
POST my_index/_analyze
{
"analyzer":"my_custom_analyzer",
"text":"i am very ? !?"
}以上就是小编今天的分享了,希望可以帮助到大家。