当前位置:科普知识站>IT科技>

java|mapping

IT科技 阅读(2.62W)

<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 ? !?"}