【问题标题】:How to import data into Apache Solr index from LDAP如何从 LDAP 将数据导入 Apache Solr 索引
【发布时间】:2016-03-17 08:19:42
【问题描述】:

我有一个包含大量用户数据的 LDAP 服务器,并希望将其导入 Apache Solr 索引。问题不在于这是否是一个好主意(如here 所讨论的那样)。我需要这种架构,因为我们的生产系统之一依赖于 ldap 数据的 Solr 索引。

我正在考虑不同的选择,但我不确定应该首选哪一个:

选项 1:使用 Apache Solr DataImportHandler

这似乎是最直接的 Solr 方式。不幸的是,似乎没有可用于 LDAP 的 DataSource。

我尝试将 JdbcDataSource 与 JDBC-LDAP-Bridge 结合使用。从理论上讲,这可能可行,但驱动程序看起来已经过时了(2007 年的最新版本)。

另一个选项可能是使用一些 Java 的 LDAP 库(可能是 Spring LDAP,直接通过 JNDI 或类似的东西?)编写自定义 LdapDataSource。

选项 2:构建自定义 Feeder:

另一种选择可能是编写一个独立的服务/脚本来连接两个服务。然而,这感觉有点像重新发明轮子。

选项 3:我还没有想到的事情:

也许这里还有其他我还没有发现的选项。

【问题讨论】:

    标签: jdbc solr ldap integration


    【解决方案1】:

    通过为 Solr DataImportHandler 编写自定义 LDAP 数据源解决了这个问题。

    这并不像听起来那么难。 JdbcDataSource 可以用作编写自定义数据源的模板,因此基本上您只需为 LDAP 协议重写一个 Java-Class。

    对于访问 LDAP 客户端,有很多选项,例如普通 JNDI、UnboundID LDAP SDK、Apache LDAP API、OpenDJ LDAP SDK 或 OpenLDAP JLDAP(可能还有更多,但我只看过这些)。

    我选择了 UnboundID LDAP,因为它有据可查的 API 和对 LDAPv3 的全面支持。

    之后只需从 data-config.xml 中引用数据源即可。

    此设置的一个很好的副作用是,您可以在索引 LDAP 服务器(实体处理器和转换器)时使用 Solr DataImportHandler 提供的所有好东西。这使得在 LDAP 和 Solr 索引之间映射数据结构变得容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-13
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 2017-02-27
      • 1970-01-01
      相关资源
      最近更新 更多