【问题标题】:SolrJ - Indexing multiple classes and ensuring document uniquenessSolrJ - 索引多个类并确保文档唯一性
【发布时间】:2013-02-08 10:11:45
【问题描述】:

我想使用 SolrJ 来索引一组 Java 类。每个类实例由其在类中唯一的 id 确定。但是,通过使用 Solr @Field 注解从这些类创建 Solr 文档,结果证明该注解不能保证存储在 Solr 索引中的创建文档的唯一性(相同的 id 值可能属于多个类)。

我尝试将注释方法与 Solr UUID 数据类型相结合,以在 solr 架构中的指定字段中生成唯一 id 值,但没有成功。

因此,我创建了一个与 SolrJ 没有太大区别的简单注释机制,它保证了跨多个类的唯一性。这是通过组合对象类名称及其 id 来获得一种 UUID 来完成的,然后将其存储在 Solr 模式中。

我不确定我是否没有遗漏什么,所以我想知道上述工作解决方案是否适合我的情况,或者是否有任何更清洁/更好的替代方案。

【问题讨论】:

    标签: solr indexing uuid solrj


    【解决方案1】:

    通常一个 POJO 将对应一个模式和一个 Solr 核心。我不确定您为什么要将不同的 POJO 索引到一个 Solr 核心中。

    但话虽如此,您的类名方法应该可以正常工作。否则,您可以在每个类中声明一个静态的CLASS_ID 字段,使它们对于不同的类保持不同,并通过像id:CLASS_ID 一样连接形成 Solr 文档 ID。

    【讨论】:

      【解决方案2】:

      我认为这是一种有效的方法。我们正在对我们所在位置的多个索引进行类似的操作。例如,我们的数据库中有 4 种不同类型的项目,我们将它们加载到索引中的一个公共模式中,并且我们在数据库表 ID 前加上该类型的前两个唯一字母以确保它是唯一的。

      另外,IMO,在一个索引中索引多个不同类型确实是一种偏好,而不是如下链接所示的经验法则

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-15
        • 2011-06-30
        • 2016-12-15
        • 1970-01-01
        • 2018-07-21
        相关资源
        最近更新 更多