栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch(二)

ElasticSearch(二)

集成SpringBoot

https://www.elastic.co/guide/cn/index.html
意外找到了一个中文版的文档,但是文档比较老了

https://www.elastic.co/guide/en/elasticsearch/client/java-rest/current/index.html


一般使用高级的
1.找到原生的依赖


    org.elasticsearch.client
    elasticsearch-rest-high-level-client
    7.15.1

2.找对象

3.分析这个类中的方法即可

配置基本的项目

问题:一定要保证我们导入的依赖和我们的es版本一致

可在此指定需要的版本




这里导入3个类,静态内部类,核心类就一个

API测试

	@Autowired
	@Qualifier("restHighLevelClient")//对应配置里的方法名
	private RestHighLevelClient client;

	//创建索引
	@Test
	void createIndex() throws IOException {
		//1.创建索引请求
		CreateIndexRequest request = new CreateIndexRequest("beibei_index");
		//2.执行创建请求 indicesClient请求后获得响应
		CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
		System.out.println(createIndexResponse);
	}
	//获取索引,判断其是否存在
	@Test
	void existsIndex() throws IOException {
		GetIndexRequest request = new GetIndexRequest("beibei_index");
		boolean exists = client.indices().exists(request,RequestOptions.DEFAULT);
		System.out.println("exists===="+exists);

		GetIndexRequest request2 = new GetIndexRequest("beibei_index2");
		boolean exists2 = client.indices().exists(request2,RequestOptions.DEFAULT);
		System.out.println("exists2==="+exists2);
	}
	//删除索引
	@Test
	void deleteIndex() throws IOException {
		DeleteIndexRequest request = new DeleteIndexRequest("beibei_index");
		AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
		System.out.println(delete.isAcknowledged());
	}
		//新建文档
	@Test
	void adddocument() throws IOException {
		//创建对象
		User user = new User("豆豆呀", 2);
		//创建请求
		IndexRequest request = new IndexRequest("doudou_index1");
		//规则PUT /doudou_index1/_doc/1
		request.id("1");
		//1s
		request.timeout(Timevalue.timevalueSeconds(1));
		//放入内容
		request.source(JSON.toJSONString(user), XContentType.JSON);
		//发送请求
		IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);
		System.out.println(indexResponse.toString());
		System.out.println(indexResponse.status());//CREATED
	}

	//判断文档是否存在
	@Test
	void existsdocument() throws IOException {
		GetRequest getRequest = new GetRequest("doudou_index1", "1");
		//false 忽略_source上下文
		getRequest.fetchSourceContext(new FetchSourceContext(false));
		getRequest.storedFields("_none_");
		boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);
		//true存在
		System.out.println(exists);
	}
	//获取文档信息
	@Test
	void getdocument() throws IOException {
		GetRequest getRequest = new GetRequest("doudou_index1", "1");
		GetResponse getResponse = client.get(getRequest,RequestOptions.DEFAULT);
		System.out.println(getResponse.getSourceAsString());
		System.out.println(getResponse);
	}
	//更新文档信息
	@Test
	void updatedocument() throws IOException {
		UpdateRequest updateRequest = new UpdateRequest("doudou_index1", "1");
		updateRequest.timeout("1s");
		User user = new User("豆豆上班班", 3);
		updateRequest.doc(JSON.toJSONString(user),XContentType.JSON);
		UpdateResponse update = client.update(updateRequest, RequestOptions.DEFAULT);
		System.out.println(update);
	}
	//删除文档信息
	@Test
	void deletedocument() throws IOException {
		DeleteRequest deleteRequest = new DeleteRequest("doudou_index1", "1");
		deleteRequest.timeout("1s");
		DeleteResponse delete = client.delete(deleteRequest, RequestOptions.DEFAULT);
		//若删除的不存在则会result=not_found
		System.out.println(delete);
	}
	//批量插入
	@Test
	void insertBatchdocument() throws IOException {
		BulkRequest bulkRequest = new BulkRequest();
		bulkRequest.timeout("10s");
		ArrayList users = new ArrayList<>();
		users.add(new User("豆豆",2));
		users.add(new User("西西",3));
		users.add(new User("圆圆",4));
		users.add(new User("一一",5));
		users.add(new User("开心",3));
		for (int i = 0; i < users.size(); i++) {
			//组装请求 批量删除 批量更新 就改里面的请求就可以了
			bulkRequest.add(new IndexRequest("doudou_index1")
					//不写这句也行 会生成随机id
					.id(String.valueOf(i))
			        .source(JSON.toJSONString(users.get(i)),XContentType.JSON));
		}
		//批量插入
		BulkResponse bulk = client.bulk(bulkRequest, RequestOptions.DEFAULT);
		System.out.println(bulk);
	}
	//批量删除
	@Test
	void deleteBatchdocument() throws IOException {
		BulkRequest bulkRequest = new BulkRequest();
		bulkRequest.timeout("10s");
		for (int i = 0; i <5; i++) {
			//组装数据
			bulkRequest.add(new DeleteRequest("doudou_index1")
					//不写这句也行 会生成随机id
					.id(String.valueOf(i)));
		}
		//批量
		BulkResponse bulk = client.bulk(bulkRequest, RequestOptions.DEFAULT);
		System.out.println(bulk);
	}
	//查询

	
	@Test
	void search() throws IOException {
		SearchRequest searchRequest = new SearchRequest("doudou_index1");
		//构建搜索条件
		SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
		//QueryBuilders组装查询条件
		//精确查找 QueryBuilders.termQuery
		//匹配所有  QueryBuilders.matchAllQuery
		TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "豆");
		//TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("age", 3);
		//MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
		searchSourceBuilder.query(termQueryBuilder);
		//分页
		
		searchSourceBuilder.timeout(new Timevalue(10, TimeUnit.SECONDS));
		searchRequest.source(searchSourceBuilder);
		SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
		System.out.println(JSON.toJSONString(searchResponse.getHits()));
		System.out.println("==================");

		for (SearchHit hit : searchResponse.getHits().getHits()) {
			System.out.println(hit.getSourceAsMap());
		}
	}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/354681.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号