開心生活站

位置:首頁 > IT科技 > 

java,mapping

IT科技2.59W

<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、字段,倒排索引的相關配置(是否分析,用那種分析器)。

java mapping

如何更改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 ? !?"}

標籤:java mapping