mapping,java
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
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 ? !?"}