我是靠谱客的博主 受伤海燕,最近开发中收集的这篇文章主要介绍基于JAVA调用ES API实践索引、映射与文档的操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

<dependency>
    <groupId>org.elasticsearch</groupId>
    <artifactId>elasticsearch</artifactId>
    <version>5.6.8</version>
</dependency>

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>transport</artifactId>
    <version>5.6.8</version>
</dependency> 

二、连接与释放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();

创建成功截图如下:
在这里插入图片描述
四、创建映射
可以用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是自定义的映射名字。
在这里插入图片描述
五、创建文档
和创建映射类似,需要先构建Json 文档对象,如用XContentBuilder构建Json对象,那么创建文档的语句如下:
client.prepareIndex(“est2”, “demoMapping”, “1”).setSource(builder).get();
其中demoMapping是自定义的映射名字,1是文档对应的id。
如用Json工具建立,需在工程中引入fastjson或jackson工具,通过bean设置值,语句如下:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.62</version>
</dependency>
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class DemoMapping {
    private Integer id;
    private String title;
    private String content;
}

在这里插入图片描述
在这里插入图片描述

最后

以上就是受伤海燕为你收集整理的基于JAVA调用ES API实践索引、映射与文档的操作的全部内容,希望文章能够帮你解决基于JAVA调用ES API实践索引、映射与文档的操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部