我面临索引问题。
在我的Spring文档中,我有一张 map 。该 map 可以包含数千个数据,因为我保存了历史记录。
private NavigableMap<String, Integer> installHistory = new TreeMap<>();
在 Elasticsearch 中,我 map 中的所有数据都是索引,并且出现了极限执行错误。如何不对Map中的所有数据建立索引?
我使用spring 2.2和spring Elasticsearch 3.2.4
提前致谢。
编辑:
我升级到spring数据 flex 4.0.1以使用FielType.Flattened,但是spring数据 flex 4.0.1支持minsearch版本的Elasticsearch7.6.X。我的版本是7.4,我无法更改,因为它是aws提供的最新版本。
我将字段设为 transient ,并为此Map创建了String属性。保存对象之前,我将 map 转换为列表并将其放入String变量。
最佳答案
将 map 转换为以 map 键作为属性,将 map 值作为值的JSON对象。因此,您最终存储了具有数千个属性see the Elasticsearch documentation about this的对象。
您可以使用FieldType.Flattened
声明installHistory的类型
编辑:
我想念您正在使用Spring Data Elasticsearch3.2.x。在4.0中增加了对扁平字段类型的支持。
最好的办法可能是将Map属性转换为成对或Tupel列表,其中每个对包含 map 中的键/值对。
关于java - spring elasticsearch:如何将Map另存为索引中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62797032/