gpt4 book ai didi

java - 在 Schema less solr 中存储 Java 对象

转载 作者:行者123 更新时间:2023-12-01 09:14:50 25 4
gpt4 key购买 nike

想法:

使用以下方法将 POJO 转换为平面 map ObjectToMapTransformer

并从 map 中形成一个 solrinputdocument 并将其存储在 Solr 中。

在检索时从 Solr 获取文档并使用 MapToObjectTransformer 将文档转换为 map 和 POJO

问题:

将 SolrinputDocument 保存到 Solr 时,POJO 的 A.B[0].c 之类的扁平键将在 Solr 中转换为 A.B_0_.c

Solr 中的这种替代存储形式使得将 solrDocument 反序列化为 POJO 变得困难。

如何解决这个问题?或者在 Solr 中存储可查询文档的替代方法是什么,可以轻松反序列化和序列化。

最佳答案

您通常使用要将该字段索引到的相应 Solr 字段来包装 POJO 中的字段。请参阅Mapping a POJO for Solr

如果您确实想要将完整的对象序列化到 Solr 中,请将其序列化为单个字段,如果可能,请使用字符串字段(因为它将直接存储您的对象)。如果您还想实际搜索对象内的字符串值,则可以使用文本字段 - 但由于所有内容都导入到单个字段中,因此会有一些限制(例如,如果您想对不同字段进行评分或搜索对象的单个属性中的值)。

所以:Use the @Field annotation from SolrJ.beans进行特定的 POJO 处理,或将其分解为单个字段并在该字段中搜索字符串。

关于java - 在 Schema less solr 中存储 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40635336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com