Java操作ElasticSearch

maven引入

<!-- https://mvnrepository.com/artifact/org.elasticsearch/elasticsearch -->
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.2.3</version>
</dependency>

<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.2.3</version>
<exclusions>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
</exclusions>
</dependency>

1、创建索引

@Override
public DataWrapper<Void> createIndex(String index, String mapping) {//其中mapping对应下表格中非标红的的定义
DataWrapper<Void> dw = new DataWrapper<Void>();
try {
client.admin().indices().prepareCreate(index).setSource(mapping, XContentType.JSON).execute().actionGet();
} catch (Exception e) {
log.error(e.getMessage(), e);
dw.setCallStatus(CallStatusEnum.FAILED);
dw.setMessage(e.getMessage());
}
return dw;
}

创建索引的mapping:

put test
{
"mappings": {
"test": {
"properties": {
"name": {
"type": "keyword"
},
"question": {
"type": "text",
"analyzer": "ik"
}
}
}
},
"settings": {
"number_of_shards": "5",
"analysis": {
"analyzer": {
"ik": {
"type": "standard",
"tokenizer": "ik_max_word"
}
}
},
"number_of_replicas": "1"
}
}

2、删除索引

@Override
public DataWrapper<Void> deleteIndex(String index) {
DataWrapper<Void> dw = new DataWrapper<Void>();
try {
client.admin().indices().prepareDelete(index).execute().actionGet();
} catch (Exception e) {
log.error(e.getMessage(), e);
dw.setCallStatus(CallStatusEnum.FAILED);
dw.setMessage(e.getMessage());
}
return dw;
}

3、修改索引

①添加字段

@Override
public DataWrapper<Void> updateIndex(String index, String type, String mapping) {//其中mapping对应下表格中非标红的的定义
DataWrapper<Void> dw = new DataWrapper<Void>();
try {
client.admin().indices().preparePutMapping(index).setType(type).setSource(mapping, XContentType.JSON).execute().actionGet();
} catch (Exception e) {
log.error(e.getMessage(), e);
dw.setCallStatus(CallStatusEnum.FAILED);
dw.setMessage(e.getMessage());
}
return dw;
}

put test/test/_mapping
{
"properties": {
"code": {
"type": "keyword"
}
}
}

②修改索引配置

@SuppressWarnings("unused")
@Override
public DataWrapper<Void> updateSetting(String index, String type, String mapping) {//其中mapping对应下表格中非标红的的定义
DataWrapper<Void> dw = new DataWrapper<Void>();
try {
UpdateSettingsRequest request = new UpdateSettingsRequest(index);
request.settings(mapping, XContentType.JSON);

boolean acknowledged = client.admin().indices().updateSettings(request).actionGet().isAcknowledged();
} catch (Exception e) {
log.error(e.getMessage(), e);
dw.setCallStatus(CallStatusEnum.FAILED);
dw.setMessage(e.getMessage());
}
return dw;
}

PUT test/_settings
{
"index":{
"max_result_window":50000
}
}

原文地址:https://www.cnblogs.com/wangymd/p/11139856.html