
java mapping是什么,讓我們一起了解一下?
Mapping類似于數(shù)據(jù)庫中的schema定義,Mapping會把json文檔映射成Lucene所需要的扁平格式,一個Mapping屬于一個索引的type。
Mapping的作用有哪些?
1、定義索引中的字段的名稱。
2、定義字段的數(shù)據(jù)類型,如字符串,數(shù)字,布爾等。
3、字段,倒排索引的相關(guān)配置(是否分析,用那種分析器)。

如何更改Mapping的字段類型?
1、Dynamic設(shè)為true時,一旦有新增字段的文檔寫入,Mapping也同時被更新。
2、Dynamic設(shè)為false時,Mapping不會被更新,新增字段的數(shù)據(jù)無法被索引,但是信息會出現(xiàn)在_source中。
3、Dynamic設(shè)為strict,文檔寫入失敗。
實戰(zhàn)操作:具體代碼示例如下:
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???!?"
}以上就是小編今天的分享了,希望可以幫助到大家。
