elasticsearch 添加字段

Elasticsearch中的mapping一旦创建,就不能再修改。但是添加字段是可以的。其实很简单,只需在原来的mapping上面直接新增加一个field,然后重新创建一下mapping就可以了。

原mapping的定义如下:

private static XContentBuilder getMapping() throws Exception{
		XContentBuilder mapping = jsonBuilder()  
			       .startObject()  
			         .startObject("test")  
			         .startObject("properties")         
			           .startObject("id")
			           		.field("type", "long")
			           		.field("store", "yes")
			           	.endObject()    
			           	
			           .startObject("type")
			           		.field("type", "string")
			           		.field("index", "not_analyzed")
			           	.endObject()  
			           	
			           .startObject("catIds")
			           		.field("type", "integer")
			           .endObject()  
			         .endObject()  
			        .endObject()  
			      .endObject();  
		return mapping;
	}

现在加入要增加一个field,名称叫title。新增后的代码如下:

private static XContentBuilder getMapping() throws Exception{
		XContentBuilder mapping = jsonBuilder()  
			       .startObject()  
			         .startObject("test")  
			         .startObject("properties")         
			           .startObject("id")
			           		.field("type", "long")
			           		.field("store", "yes")
			           	.endObject()    
			           	
			           .startObject("type")
			           		.field("type", "string")
			           		.field("index", "not_analyzed")
			           	.endObject()  
			           	//新增字段
			           	 .startObject("title")
			           		.field("type", "string")
			           		.field("index", "analyzed")
			           	.endObject()  
			           	
			           .startObject("catIds")
			           		.field("type", "integer")
			           .endObject()  
			         .endObject()  
			        .endObject()  
			      .endObject();  
		return mapping;
	}

然后重新putMapping即可。

还不知道如何创建mapping?请看这里

对这类话题感兴趣?欢迎发送邮件至 [email protected]
关于我:邯郸人,擅长Java,Javascript,Extjs,oracle sql。
更多我之前的文章,可以访问  我的空间

 

猜你喜欢

转载自donlianli.iteye.com/blog/1922825