ES 记录之如何创建一个索引映射,以及一些设置

** 初始化其映射**

PUT /my_index/_mapping/my_type
	{
	    "my_type": {//索引字段
	        "properties": {//
	            "english_title": {
	                "type":     "string",//字段的类型,string类型
	                "analyzer": "english"//分析方式
	            }
	        }
	    }
	}
	//上面这种方式,是以前旧的方式。现在都使用这种的方式创建字段

PUT /my_index/_mapping/my_type
	{
	    "my_type": {
	        "properties": {
	            "english_title": {
	                "type":     "keyword" //不分词结构,
	            }
	        }
	    }
	}
	//type也有分词索引结构的字段,就是text类型的字段

ES中的基本数据类型有

  • 字符串 string
  • 数字类型 long integer double 等
  • 日期 date
  • 布尔类型 boolean
  • 二进制 binary
  • 复杂的数据类型
  • 数组类型
  • 对象类型
  • 嵌套类型 netsted
  • 地理数据类型
  • 专门数据类型
  • ipv4
  • 完成数据类型
  • 单词计数类型

同样我们可以使用其他数据类型来构建我们的数据映射
我们在创建索引时,也可以指定其他的设置,例如自定义分片方式

PUT /my_temp_index
{
    "settings": {
        "number_of_shards" :   1,//主分片数量
        "number_of_replicas" : 0//副分片数量
    }
}

我们也可以在创建索引,同时自定义分词结构

PUT /product
{
  "settings": {
      "analysis": {
          "analyzer": {
              "defalut": {
                  "tokenizer": "ik_max_word"
              },
              "pinyin_analyzer": {
                  "tokenizer": "my_pinyin"
              }
          },
          "tokenizer": {
              "my_pinyin": {
                  "keep_first_letter": false,
                  "keep_full_pinyin": true,
                  "keep_original": false,
                  "keep_separate_first_letter": false,
                  "limit_first_letter_length": 16,
                  "lowercase": true,
                  "type": "pinyin"
              }
          }
      }
  }
},
	这上面的分词器需要先安装,这是利用安装后ik分词器来进行分词结构