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