为什么hazelcast无法使用imap和hazelcastjsonvalue查询不正确的结果

问题描述

我在hazelcast中使用IMap存储数据,键是字符串,值是hazelcastjsonvalue。代码示例: `

diamol/base

`条件正确,但结果为null,为什么?不添加索引时,查询结果正确。

解决方法

在您的map.put中,尝试将value子句从json更改为new HazelcastJsonValue(json))

您命名为json的变量实际上是一个字符串,因此它是形式为Map<String,String>的映射。

Hazelcast不会在字符串内部搜索字段,因为它不知道它包含任何形式的结构化数据。您将获得IllegalOperationException的已发布代码。

如果您将new HazelcastJsonValue(json))用作条目的值,则会使其结构化,并且可以在字段上进行搜索(和索引)。