实现“java es 中文Api”教程
一、整体流程
flowchart TD;
A(准备环境) --> B(导入相关依赖);
B --> C(创建索引);
C --> D(设置Mapping);
D --> E(插入数据);
E --> F(搜索数据);
二、步骤与代码
1. 准备环境
在项目中引入Elasticsearch的Java客户端依赖包。
// maven依赖
<!-- -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.15.1</version>
</dependency>
2. 创建索引
使用RestHighLevelClient创建索引。
// 创建RestHighLevelClient实例
RestHighLevelClient client = new RestHighLevelClient(
RestClient.builder(new HttpHost("localhost", 9200, "http")));
// 创建索引请求
CreateIndexRequest request = new CreateIndexRequest("index_name");
// 向Elasticsearch发送请求
CreateIndexResponse createIndexResponse = client.indices().create(request, RequestOptions.DEFAULT);
3. 设置Mapping
定义索引的Mapping,包括字段类型、分词器等。
// 创建Mapping
XContentBuilder builder = XContentFactory.jsonBuilder();
builder.startObject();
{
builder.startObject("properties");
{
builder.startObject("title");
{
builder.field("type", "text");
builder.field("analyzer", "ik_max_word");
}
builder.endObject();
}
builder.endObject();
}
builder.endObject();
PutMappingRequest mappingRequest = new PutMappingRequest("index_name");
mappingRequest.source(builder);
// 向Elasticsearch发送请求
client.indices().putMapping(mappingRequest, RequestOptions.DEFAULT);
4. 插入数据
向索引中插入数据。
// 创建索引请求
IndexRequest indexRequest = new IndexRequest("index_name");
indexRequest.id("1");
indexRequest.source("title", "中文测试数据");
// 向Elasticsearch发送请求
IndexResponse indexResponse = client.index(indexRequest, RequestOptions.DEFAULT);
5. 搜索数据
搜索包含特定关键词的数据。
// 创建搜索请求
SearchRequest searchRequest = new SearchRequest("index_name");
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.matchQuery("title", "中文"));
searchRequest.source(sourceBuilder);
// 向Elasticsearch发送请求
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
三、类图
classDiagram
class RestHighLevelClient {
+ RestHighLevelClient(builder: RestClientBuilder)
+ indices(): IndicesClient
+ index(indexRequest: IndexRequest, options: RequestOptions): IndexResponse
+ search(searchRequest: SearchRequest, options: RequestOptions): SearchResponse
}
class CreateIndexRequest
class PutMappingRequest
class IndexRequest
class SearchRequest
通过以上步骤,你可以成功实现Java中文Api的使用。祝你学习顺利!