Elasticsearch常用函数

本文详细介绍了如何使用Elasticsearch的高阶API进行文档插入、获取、存在判断、删除、更新、批量操作、查询、异步处理以及条件构造查询。涵盖索引、搜索、筛选等关键操作,是Elasticsearch开发者必备技能。
摘要由CSDN通过智能技术生成

插入文档

IndexRequest request = new IndexRequest("索引").id("id值").source(Map数据);
RestHighLevelClient.index(request, RequestOptions.DEFAULT);

获取一个文档

GetRequest getRequest = new GetRequest("索引", "id值");
RestHighLevelClient.get(getRequest, RequestOptions.DEFAULT);

判断文档是否存在

GetRequest getRequest = new GetRequest("索引", "id值");
// 只是判断是否存在,禁止以下两个,可不管
getRequest.fetchSourceContext(new FetchSourceContext(false));	// 禁止获取_source
getRequest.storedFields("_none_");	// 禁止获取存储字段
RestHighLevelClient.exists(getRequest, RequestOptions.DEFAULT);

删除文档

DeleteRequest deleteRequest = new DeleteRequest("索引", "id值");
client.delete(deleteRequest, RequestOptions.DEFAULT);

更新文档

UpdateRequest request = new UpdateRequest("索引", "id值").doc(Map数据);
RestHighLevelClient.update(request, RequestOptions.DEFAULT);

批量更新(批量操作)(增删改)

BulkRequest request = new BulkRequest();
request.add(new IndexRequest("索引").id("id值1").source(XContentType.JSON, "field", "foo", "user", "lucky"));
request.add(new IndexRequest("索引").id("id值2").source(XContentType.JSON, "field", "bar", "user", "Jon"));
request.add(new DeleteRequest("索引", "id值"));
request.add(new UpdateRequest("索引", "id值").doc(XContentType.JSON, "other", "test"));
RestHighLevelClient.bulk(request, RequestOptions.DEFAULT);

批量查询

MultiGetRequest request = new MultiGetRequest();
request.add(new MultiGetRequest.Item("索引", "id值1"));
request.add(new MultiGetRequest.Item("索引", "id值2"));
request.add(new MultiGetRequest.Item("索引", "id值3"));
RestHighLevelClient.mget(request, RequestOptions.DEFAULT);

异步操作

ActionListener<SearchResponse> listener = new ActionListener<SearchResponse>() {
    @Override
    public void onResponse(SearchResponse searchResponse) {
        // 查询成功
    }

    @Override
    public void onFailure(Exception e) {
        // 查询失败
    }
};
RestHighLevelClient.indexAsync(request, RequestOptions.DEFAULT, listener);

条件构造查询

// 大致使用
SearchRequest request = new SearchRequest(索引);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(QueryBuilders.xxx());
request.source(searchSourceBuilder);
RestHighLevelClient.search(request, RequestOptions.DEFAULT, listener);

// 1.搜索请求(列举常用)
SearchRequest request = new SearchRequest(索引);	
request.types(类型);
request.types();
request.source(搜索源生成器);  //搜索源生成器 --> SearchSourceBuilder
request.source();

// 2.搜索源生成器(列举常用)
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.from(开始索引);		// LIMIT ?
searchSourceBuilder.size(查询数量);		// LIMIT x,?
searchSourceBuilder.query(查询生成器);	// 查询生成器 --> QueryBuilders
searchSourceBuilder.sort("key",SortOrder.排序规则);	// 多个排序就构建多个sort,按顺序执行
searchSourceBuilder.sort(SortBuilders.fieldSort("key").order(SortOrder.排序规则));

// 3.查询生成器(列举常用)
QueryBuilders;
// 3.1 复合过滤器(列举常用)
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
boolQueryBuilder.must(查询生成器);	// AND
boolQueryBuilder.should(查询生成器);	// OR
boolQueryBuilder.mustNot(查询生成器);// NOT
boolQueryBuilder.filter(查询生成器);
// 3.2 Ids查询器(列举常用)
IdsQueryBuilder idsQueryBuilder = QueryBuilders.idsQuery();
idsQueryBuilder.addIds(String ids...);
idsQueryBuilder.types(String types...);
// 3.3 范围查询器(列举常用)
RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery(key);
rangeQueryBuilder.gt(数值);	// 大于
rangeQueryBuilder.gte(数值);	// 大于等于
rangeQueryBuilder.lt(数值);	// 小于
rangeQueryBuilder.lte(数值);	// 小于等于
// 3.4 正则表达式查询器(列举常用)
RegexpQueryBuilder regexpQueryBuilder = QueryBuilders.regexpQuery(key,正则表达式);
// 3.5 模糊查询器(列举常用)	模糊查询,我们输入字符的大概,ES就可以去根据输入的内容大概去匹配一下结果
FuzzyQueryBuilder fuzzyQueryBuilder = QueryBuilders.fuzzyQuery(key, 模糊值);
// 3.6 通配符查询器(列举常用)	*:通配符	?:占位符
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery(key,value);
// 3.7 前缀查询器(列举常用) 前缀查询,可以通过一个关键字去指定一个Field的前缀,从而查询到指定的文档
PrefixQueryBuilder prefixQueryBuilder = QueryBuilders.prefixQuery(key,前缀值);
// 3.8 高层查询器(列举常用) 自动根据查询的字段类型采用不同的查询方式
MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery(key,valye);
// 3.8.1 and或者or查询器(列举常用)
Operator operator = QueryBuilders.matchQuery(key,valye).operator();
// 3.9 查询所有(列举常用)
MatchAllQueryBuilder matchAllQueryBuilder = QueryBuilders.matchAllQuery();
// 3.10 全值查询器(列举常用)全值匹配,搜索之前不会对搜索的关键字进行分词,直接去分词库中匹配
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(key,value);
// 3.11 全值查询器(和termQuery差不多)(value是可变参数,value间是or连接,相当于in(value))(列举常用)
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery(key,value1,value2...);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
openGLES2是OpenGL ES的一个版本,它是用于在移动设备上进行图形渲染的API。根据引用,glClear函数用于清除指定的缓冲区,其中mask参数指定要清除的缓冲区类型。 根据引用中的示例代码,glGenTextures函数用于生成纹理对象,glBindTexture函数用于绑定纹理对象。接下来,glTexParameteri函数设置纹理对象的参数,例如纹理过滤模式、纹理包裹模式等。然后,glTexImage2D函数用于指定纹理的像素数据,包括宽度、高度、像素格式和数据等。最后,glGenerateMipmap函数用于为纹理生成多级渐远纹理。 以上是openGLES2中的一些常用函数,它们可以用于创建和处理纹理对象。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [OpenGLES glClear函数](https://blog.csdn.net/tujidi1csd/article/details/119699724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [OpenGL ES2.0/3.0 glTexImage2D 函数详解](https://blog.csdn.net/juruiyuan111/article/details/118221422)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值