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 ? !?" }
以上就是小编今天的分享了,希望可以帮助到大家。