基于JAVA调用ES API实践索引、映射与文档的操作

一、POM文件引用ES必要依赖

>
    >org.elasticsearch>
    >elasticsearch>
    >5.6.8>
>

>
    >org.elasticsearch.client>
    >transport>
    >5.6.8>
> 

二、连接与释放ES Server
1、对ES操作之前需要创建与ES Server的连接,如下:

Settings settings = Settings.builder().put("cluster.name", "es_cluster").build();
TransportClient client = new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));

其中cluster.name对应的Value值是自定义的ES集群名字(关于ES集群搭建,可参考“基于WIN10搭建ES伪集群的实践
”),InetSocketTransportAddress中机器IP对应的是集群主结点IP。
2、对ES操作之后需要释放与ES Server的连接,如下:

if(client != null){
    client.close();
}

三、创建索引

client.admin().indices().prepareCreate("est2").get();

创建成功截图如下:
基于JAVA调用ES API实践索引、映射与文档的操作_第1张图片
四、创建映射
可以用XContentBuilder或者Json工具构建Json Mapping对象,然后通过ES API创建,比如用XContentBuilder构建Json对象,

{
    "mappings": {
        "demoMapping": {
            "properties": {
                "id": {
                	"type": "long",
                    "store": true,
                    "index":"not_analyzed"
                },
                "title": {
                	"type": "text",
                    "store": true,
                    "index":"analyzed",
                    "analyzer":"standard"
                },
                "content": {
                	"type": "text",
                    "store": true,
                    "index":"analyzed",
                    "analyzer":"standard"
                }
            }
        }
    }
}

那么创建映射的语句如下:

PutMappingRequest mapping = Requests.putMappingRequest("est2")
        .type("demoMapping").source(builder);
client.admin().indices().putMapping(mapping).get();

其中demoMapping是自定义的映射名字。
基于JAVA调用ES API实践索引、映射与文档的操作_第2张图片
五、创建文档
和创建映射类似,需要先构建Json 文档对象,如用XContentBuilder构建Json对象,那么创建文档的语句如下:
client.prepareIndex(“est2”, “demoMapping”, “1”).setSource(builder).get();
其中demoMapping是自定义的映射名字,1是文档对应的id。
如用Json工具建立,需在工程中引入fastjson或jackson工具,通过bean设置值,语句如下:

>
    >com.alibaba>
    >fastjson>
    >1.2.62>
>
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DemoMapping {
    private Integer id;
    private String title;
    private String content;
}

基于JAVA调用ES API实践索引、映射与文档的操作_第3张图片
基于JAVA调用ES API实践索引、映射与文档的操作_第4张图片

你可能感兴趣的:(笔记)