当前位置: 首页> 游戏> 攻略 > 河北高端网站制作_企业网站优化平台_网络营销的优势包括_搜索引擎营销的实现方法有哪些

河北高端网站制作_企业网站优化平台_网络营销的优势包括_搜索引擎营销的实现方法有哪些

时间:2025/7/9 6:26:18来源:https://blog.csdn.net/fox_bert/article/details/142337940 浏览次数:0次
河北高端网站制作_企业网站优化平台_网络营销的优势包括_搜索引擎营销的实现方法有哪些

目录

一、集成Spring Boot

 1、创建项目

2、pom文件 查看springboot集成的依赖

3、增加es的config类

二、索引相关API

1、创建索引

2、获取索引,判断其是否存在

3、删除索引

三、文档相关API

1、添加文档

2、获取文档,判断是否存在

3、获取文档信息

4、更新文档信息

5、删除文档信息

6、同文档批量导入数据

7、条件查询文档信息


一、集成Spring Boot

Java使用对应的rest风格调用ES是通过client依赖包进行操作的

配置需要的 maven 依赖

<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.17.24</version>
</dependency>

 1、创建项目

如果创建项目后拉取不到对应依赖,springboot 可以选用低一些的稳定版本例如 2.3.2.RELEASE 版本

2、pom文件 查看springboot集成的依赖

(当然也可自定义ES版本)

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency>

3、增加es的config类

package com.example.elasticsearch_springboot_demo.config;import org.apache.http.HttpHost;
import org.elasticsearch.client.RestClient;
import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ElasticSearchClientConfig {@Beanpublic RestHighLevelClient restHighLevelClient(){RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost", 9200, "http"),new HttpHost("localhost", 9201, "http")));return client;}
}

二、索引相关API

1、创建索引

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【索引相关】索引创建*/@Testvoid testCreateIndex() throws IOException {// 1、创建索引请求CreateIndexRequest request = new CreateIndexRequest("m_index");// 2、客户端执行请求 IndicesClient,执行创建请求 并获得响应结果CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);// 3、查看响应结果System.out.println(createIndexResponse);}
}

2、获取索引,判断其是否存在

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【索引相关】获取索引,判断其是否存在*/@Testvoid  testExistIndex() throws IOException {// 1、获取索引请求GetIndexRequest request = new GetIndexRequest("m_index");// 2、客户端执行请求 IndicesClient,执行请求后获得是否存在结果boolean exists = client.indices().exists(request, RequestOptions.DEFAULT);// 3、查看结果System.out.println(exists);}
}

3、删除索引

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【索引相关】删除索引*/@Testvoid  testDeleteIndex() throws IOException {// 1、删除索引请求DeleteIndexRequest request = new DeleteIndexRequest("m_index");// 2、客户端执行请求 IndicesClient,执行删除请求 并获得响应结果AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);// 3、查看结果System.out.println(delete.isAcknowledged());}
}

三、文档相关API

先定义一个User类

@Data
@AllArgsConstructor
@NoArgsConstructor
@Component
public class User {private String name;private Integer age;}

1、添加文档

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【文档相关】添加文档*/@Testvoid  testAddDocument() throws IOException {// 1、user对象User user = new User("marvin", 26);// 2、创建请求对象,并组装文档数据IndexRequest request = new IndexRequest("m_index");// 定义文档内容// 规则 put /m_index/_doc/1request.id("1");request.timeout(TimeValue.timeValueSeconds(1));request.timeout("1s");//将user数据放入请求jsonrequest.source(JSON.toJSONString(user), XContentType.JSON);// 3、客户端发送请求,获取响应的结果IndexResponse indexResponse = client.index(request, RequestOptions.DEFAULT);// 4、查看结果System.out.println(indexResponse.toString());// 对应的文档信息System.out.println(indexResponse.status());// 执行命令的返回状态}
}

2、获取文档,判断是否存在

get /index/doc/1

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【文档相关】获取文档,判断是否存在 get /index/doc/1*/@Testvoid testIsExistsDocument() throws IOException {GetRequest getRequest = new GetRequest("m_index", "1");// 不获取返回的_source 的上下文getRequest.fetchSourceContext(new FetchSourceContext(false));getRequest.storedFields("_none_");boolean exists = client.exists(getRequest, RequestOptions.DEFAULT);System.out.println(exists);}
}

3、获取文档信息

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【文档相关】获取文档信息*/@Testvoid testGetDocument() throws IOException {GetRequest getRequest = new GetRequest("m_index", "1");GetResponse documentFields = client.get(getRequest, RequestOptions.DEFAULT);System.out.println(documentFields.getSourceAsString());// 打印文档内容System.out.println(documentFields);// 返回的全部内容和命令是一样的}
}

4、更新文档信息

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【文档相关】更新文档信息*/@Testvoid testUpdateDocument() throws IOException {UpdateRequest updateRequest = new UpdateRequest("m_index", "1");updateRequest.timeout("1s");User user = new User("jerry", 28);updateRequest.doc(JSON.toJSONString(user), XContentType.JSON);UpdateResponse updateResponse = client.update(updateRequest, RequestOptions.DEFAULT);System.out.println(updateResponse.status());}
}

5、删除文档信息

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【文档相关】删除文档信息*/@Testvoid testDeleteDocument() throws IOException {DeleteRequest deleteRequest = new DeleteRequest("m_index", "1");deleteRequest.timeout("1s");DeleteResponse deleteResponse = client.delete(deleteRequest, RequestOptions.DEFAULT);System.out.println(deleteResponse.status());}
}

6、同文档批量导入数据

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 【文档相关】特殊的,批量导入数据*/@Testvoid  testBulkDocument() throws IOException {BulkRequest bulkRequest = new BulkRequest();bulkRequest.timeout("10s");List<User> userList = new ArrayList<>();userList.add(new User("marvin1", 26));userList.add(new User("marvin2", 26));userList.add(new User("marvin3", 26));userList.add(new User("marvin4", 26));userList.add(new User("marvin5", 26));userList.add(new User("marvin6", 26));// 批处理请求for (int i=0; i<userList.size();i++){// 批量更新和批量删除,就再这里修改对应请求就可以了bulkRequest.add(new IndexRequest("m_index").id(""+(i+1)).source(JSON.toJSONString(userList.get(i)), XContentType.JSON));}BulkResponse bulkResponse = client.bulk(bulkRequest, RequestOptions.DEFAULT);System.out.println(bulkResponse.hasFailures());// 是否失败,返回false 代表成功!}
}

7、条件查询文档信息

@SpringBootTest
class ElasticSearchSpringbootDemoApplicationTests {@Autowired@Qualifier("restHighLevelClient")private RestHighLevelClient client;/*** 查询* searchRequest 搜索请求* SearchSourceBuilder 搜索条件构造*/@Testvoid testSearch() throws IOException {// 1、创建搜索请求SearchRequest searchRequest = new SearchRequest("m_index");// 2、构建搜索条件SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();/*** 查询条件,可以使用QueryBuilders快速匹配*///精确匹配:termQueryTermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("name", "marvin");//匹配所有MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();sourceBuilder.query(termQueryBuilder);sourceBuilder.timeout(new TimeValue(60, TimeUnit.SECONDS));// 3、将查询条件放入请求searchRequest.source(sourceBuilder);// 4、执行请求SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);// 5、所有结果都封装在 SearchHits 里面,通过getHits()得到System.out.println(JSON.toJSONString(searchResponse.getHits()));System.out.println("===================================");//循环输出每一条数据结果为map结构for (SearchHit documentFields : searchResponse.getHits().getHits()){System.out.println(documentFields.getSourceAsMap());// 转换为map结构}}
}

关键字:河北高端网站制作_企业网站优化平台_网络营销的优势包括_搜索引擎营销的实现方法有哪些

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: