JAVA 创建 ElaticSearch mapping

来源:互联网 发布:中国农大网络教育首页 编辑:程序博客网 时间:2024/06/05 17:58

用JAVA创建mapping

package pylx.createMapping;import java.net.InetAddress;import java.net.UnknownHostException;import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;import org.elasticsearch.client.Client;import org.elasticsearch.client.Requests;import org.elasticsearch.client.transport.TransportClient;import org.elasticsearch.common.transport.InetSocketTransportAddress;import org.elasticsearch.common.xcontent.XContentBuilder;import org.elasticsearch.common.xcontent.XContentFactory;public class CreateMapping {/*** 创建索引名称* @param indices 索引名称*/public static void createCluterName(String indices){Client client =null;try {client = TransportClient.builder().build()            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.10.10"), 9300));} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();}client.admin().indices().prepareCreate(indices).execute().actionGet();client.close();}/*** 创建mapping(feid("indexAnalyzer","ik")该字段分词IK索引 ;feid("searchAnalyzer","ik")该字段分词ik查询;具体分词插件请看IK分词插件说明)* @param indices 索引名称;* @param mappingType 索引类型* @throws Exception*/public static void createMapping(String indices,String mappingType)throws Exception{Client client =null;try {client = TransportClient.builder().build()            .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("168.192.122.100"), 9300));} catch (UnknownHostException e) {// TODO Auto-generated catch blocke.printStackTrace();}new XContentFactory();XContentBuilder builder=XContentFactory.jsonBuilder().startObject().startObject(indices).startObject("properties").startObject("id").field("type", "integer").field("store", "yes").endObject() .startObject("name").field("type", "string").field("store", "yes").field("term_vector","with_positions_offsets").field("analyzer","ik_max_word").field("search_analyzer","ik_max_word").field("include_in_all","true").field("boost",8).endObject()   .startObject("address").field("type", "string").field("store", "yes").field("term_vector","with_positions_offsets").field("analyzer","ik_max_word").field("search_analyzer","ik_max_word").field("include_in_all","true").field("boost",8).endObject()   .startObject("password").field("type", "string").field("store", "yes").field("term_vector","with_positions_offsets").field("analyzer","ik_max_word").field("search_analyzer","ik_max_word").field("include_in_all","true").field("boost",8).endObject()   .startObject("userinfo").field("type", "string").field("store", "yes").field("term_vector","with_positions_offsets").field("analyzer","ik_max_word").field("search_analyzer","ik_max_word").field("include_in_all","true").field("boost",8).endObject()  .endObject().endObject().endObject();PutMappingRequest mapping = Requests.putMappingRequest(indices).type(mappingType).source(builder);client.admin().indices().putMapping(mapping).actionGet();client.close();}public static void main(String[] args)throws Exception {createCluterName("lianan");createMapping("lianan", "lianan");}}
//插入数据
curl -XPOST http://localhost:9200/lianan/lianan/2 -d'{"id":1,"name":"汪冉冉12222","address":"地址海淀区","password":"密码是什么","userinfo":"用户信息,北京市中国江苏"}'

结果

[root@c6-100-100 elasticsearch]# curl -XPOST http://localhost:9200/lianan/lianan/2 -d'> {"id":1,"name":"汪冉冉12222","address":"地址海淀区","password":"密码是什么","userinfo":"用户信息,北京市中国江苏"}> '{"_index":"lianan","_type":"lianan","_id":"2","_version":1,"_shards":{"total":2,"successful":1,"failed":0},"created":true}[root@c6-00-100 elasticsearch]#

curl -XPOST http://localhost:9200/lianan/lianan/4 -d'{"id":1,"name":"汪冉冉12222","address":"地址海淀区","password":"密码是什么","userinfo":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}'

查询数据

curl -XPOST http://localhost:9200/lianan/lianan/_search  -d'{    "query" : { "match" : { "password" : "是什么" }},    "highlight" : {        "pre_tags" : ["<tag1>", "<tag2>"],        "post_tags" : ["</tag1>", "</tag2>"],        "fields" : {            "password" : {}        }    }}'

结果
[root@c6-100-100 elasticsearch]# curl -XPOST http://localhost:9200/lianan/lianan/_search  -d'> {>     "query" : { "match" : { "password" : "是什么" }},>     "highlight" : {>         "pre_tags" : ["<tag1>", "<tag2>"],>         "post_tags" : ["</tag1>", "</tag2>"],>         "fields" : {>             "password" : {}>         }>     }> }> '{"took":14,"timed_out":false,"_shards":{"total":5,"successful":5,"failed":0},"hits":{"total":2,"max_score":3.089294,"hits":[{"_index":"lianan","_type":"lianan","_id":"4","_score":3.089294,"_source":{"id":1,"name":"汪冉冉12222","address":"地址海淀区","password":"密码是什么","userinfo":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"},"highlight":{"password":["密码<tag1>是什么</tag1>"]}},{"_index":"lianan","_type":"lianan","_id":"2","_score":3.089294,"_source":{"id":1,"name":"汪冉冉12222","address":"地址海淀区","password":"密码是什么","userinfo":"用户信息,北京市中国江苏"},"highlight":{"password":["密码<tag1>是什么</tag1>"]}}]}}[root@c6-100-100 elasticsearch]#



0 0
原创粉丝点击