0

我有一个关于使用 Apache Ignite 进行索引的特殊问题。

我需要在不“知道”架构的情况下查询缓存。因为有时我没有 java 类定义,所以没有可用的注释。但是 Apache Ignite 似乎需要注解来识别字段。

有没有办法在运行时定义可查询字段?

我问它是因为我正在构建一个与技术无关的应用程序,并且我在运行时插入了专门的类。对我来说,另一个问题是扩展 Apache Ignite 的类并定义假字段只是为了使“字段”(假设它不是原始字段......)可以从 Apache Ignite 中查看。

有人有同样的“问题”吗?

原始类命令:

public class Command {
    private String commandName;

    public void setCommandName(String commandName) {
        this.commandName = commandName;
    }
    public String getCommandName(){
        return this.commandName;
    }
}

Ignite SQL 的扩展命令类使用:

public class IgniteCommand extends Command{
    @QuerySqlField (name="name", index = true)
    private String _commandName;

    @Override
    public void setCommandName(String commandName) {
        super.setCommandName(commandName);
        this._commandName = getCommandName();
    }
}

上面的代码对我来说很好。

4

1 回答 1

1

您可以在运行时但在缓存启动之前配置查询实体。请参阅文档 [1] 中的 Spring XML 配置示例。您可以以编程方式执行相同的操作。

您还可以使用 DDL 动态创建索引。见[2]。

[1] https://apacheignite.readme.io/docs/indexes#queryentity-based-configuration [2] https://apacheignite.readme.io/docs/distributed-ddl#section-create-index

于 2017-07-07T13:48:41.170 回答