我想将java对象存储为Solr文档的一部分。它们不需要解析或搜索,只需作为文档的一部分返回即可。我可以将它们转换为json或XML并存储文本,但我更喜欢更高效的东西。如果我可以使用Java序列化,然后将二进制blob添加到文档中,这可能是理想的选择。我知道用base64转换二进制blob的选项,但我想知道是否有更有效的方法。
我不同意前两个答案的观点。
在某些情况下,额外的数据库调用可能是完全不必要的,Solr也可以充当NoSQL数据库。
它甚至可以对某些字段使用压缩,这会影响CPU成本,但会为某些二进制数据节省一些缓存。
查看schema.xml.
由于您可以在Solr中构造一个id以与任何文档一起传递,因此您可以以其他方式存储此对象(例如数据库),并在从Solr获取id时对其进行查询。
例如,我们将网页存储在Solr中。当我们对其进行索引时,我们正在创建一个id,该id与数据库中ORM创建的WebPage对象的id相匹配
当执行搜索时,我们获取id并从数据库加载java对象
无需将其存储在solr中(用于存储和索引文档)