You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Apache Ignite Index Query返回类型配置问题:找不到对应设置字段

解决IndexQuery配置返回类型(仅键/仅值/仅索引字段)的问题

你提到的文档中描述的KeyOnly、ValueOnly、IndexFieldsOnly三种返回类型配置,在Ignite的实际API中是通过IndexQuery类的对应方法实现的,而非单独的"标记字段",具体用法如下:

1. 仅返回键(KeyOnly)

调用setKeyOnly(true)方法,此时查询返回的Cache.Entry<K, V>中value始终为null:

IndexQueryCriterion endKeyFilter = lte("deptId", 4);
IndexQuery<DepartmentKey, Department> indexQuery = new IndexQuery<>(Department.class, "DEPT_IDX");
indexQuery.setCriteria(gte("deptId", 2), endKeyFilter);
indexQuery.setKeyOnly(true); // 开启仅返回键模式
Iterator<Cache.Entry<DepartmentKey, Department>> it = cache.query(indexQuery.setPageSize(100)).iterator();

2. 仅返回值(ValueOnly)

调用setValueOnly(true)方法,此时查询返回的Cache.Entry<K, V>中key始终为null:

indexQuery.setValueOnly(true); // 开启仅返回值模式

3. 仅返回索引字段(IndexFieldsOnly)

通过setProjection()方法指定仅返回索引字段(即带有@QuerySqlField注解的字段),此时返回的value对象中,只有指定的索引字段有值,非索引字段(如果存在)会为null:

// 你的Department类中deptId、deptName、hod都是索引字段,直接指定这些字段即可
indexQuery.setProjection("deptId", "deptName", "hod");

补充说明

你参考的IEP文档是功能提案,部分术语和最终实现的API命名有差异,所以找不到文档中描述的"标记字段",改用上述方法即可实现对应需求。


内容的提问来源于stack exchange,提问作者curious_soul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:05:23