ElasticSearch实战(七) API

博客围绕ElasticSearch展开,介绍了创建、删除索引的操作,还涉及索引文档、获取文档、更新文档、删除文档等操作,同时包含局部更新、空搜索、搜索以及查询字符串示例等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 创建索引
Request request = new Request("PUT", "/something");
request.setJsonEntity(settingsAndMapping);
restClient.performRequest(request);

settingsAndMapping

{
	"settings": {
		"index": {
			"search": {
				"slowlog": {
					"threshold": {
						"query": {
							"info": "100ms"
						}
					}
				}
			},
			"number_of_shards": "5",
			"number_of_replicas": "1"
		}
	},
	"mappings": {
		"sometype": {
			"properties": {
				"author": {
					"type": "text",
					"fields": {
						"keyword": {
							"type": "keyword",
							"ignore_above": 256
						}
					}
				},
				"date": {
					"type": "date"
				},
				"id": {
					"type": "long"
				},
				"likes": {
					"type": "long"
				},
				"text": {
					"type": "text",
					"analyzer": "ik_max_word",
					"search_analyzer": "ik_smart"
				}
			}
		}
	}
}
  • 删除索引
Request request = new Request("DELETE", "/something");
restClient.performRequest(request);
  • 索引一个文档
Request request = new Request("POST", "/something/sometype/");
request.setJsonEntity("{\"author\":\"Mary Jones\",\"text\":\"Jane is an expert in her field\",\"tags\":\"expert\",\"likes\":80,\"date\":\"2019-06-21\"}");
restClient.performRequest(request);
  • 指定ID索引文档
Request request = new Request("PUT", "/something/sometype/1/_create");
request.setJsonEntity("{\"author\":\"Jane Smith\",\"text\":\"I am starting to get the hang of this...\",\"likes\":0,\"date\":\"2019-06-20\"}");
restClient.performRequest(request);
  • 获取文档
Request request = new Request("GET", "/something/sometype/1");
Response response = restClient.performRequest(request);
  • 检查文档是否存在
Request request = new Request("HEAD", "/something/sometype/2");
Response response = restClient.performRequest(request);
if(response.getStatusLine().getStatusCode() == 404) {
   //不存在
}
  • 更新文档
Request request = new Request("PUT", "/something/sometype/1/_create");
request.setJsonEntity("{\"author\":\"Jane Smith\",\"text\":\"I am starting to get the hang of this...\",\"likes\":1,\"date\":\"2019-06-20\"}");
restClient.performRequest(request);
  • 删除文档
Request request = new Request("DELETE", "/something/sometype/1");
restClient.performRequest(request);
  • 局部更新
Request request = new Request("POST", "/something/sometype/1/_update");
request.setJsonEntity("{\"doc\":{\"likes\":1}}");
restClient.performRequest(request);
  • 空搜索
Request request = new Request("GET", "/something/sometype/_search?from=0&size=10");
Response response = restClient.performRequest(request);
  • 搜索
Request request = new Request("GET", "/something/sometype/_search?q=" + java.net.URLEncoder.encode("author:Jones", "UTF-8"));
Response response = restClient.performRequest(request);

查询字符串的一些示例

q=Smith
q=author:Smith
q=+author:Smith +text:to
q=+author:Smith -text:like
q=+author:(Mary Fir John)
q=+author:(Mary Fir John) +date:>2019-06-18
q=date:2019
q=date:2019-06-20
q=likes:>=40

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值