问题标签 [dih]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1789 浏览

solr - 使用 DIH 在 solr 中索引多个表

我正在使用 Solr 开发搜索引擎,并且我已经成功地使用 DIH(数据导入处理程序)从一个表中索引数据。我需要的是从5 个不同的表中获取搜索结果。没有帮助,我无法做到这一点。

如果我们假设 x 表有 x 行,则每个表应该有 x * x 个文档,如果我总共有 5 个表,则导致 5x 个文档。在 dataconfig.xml 中,我在单个文档中创建了 5 个单独的实体,如下所示。我查询时索引数据的结果*:*只有 6 个实体用户和 3 个来自实体类,即用户总行数为 9。

显然,这种方式对我不起作用,那么我怎样才能只使用单核来实现呢?

注意:我遵循了 DIHQuickStartDIH 教程,但对我没有帮助。

0 投票
1 回答
108 浏览

solr - Solr DIH - 字段仍然存在,尽管不再定义

我使用 DIH 将数据从 sybase 数据库加载到 Solr。到目前为止一切正常。现在我决定,我不想再加载某个字段了。所以我删除了 data-config.xml 中的以下行 <field column="BibCode" name="bibcode"/> 。然后我删除了所有数据(/solr/update?stream.body= :和 /solr/update?stream.body=),重新启动 tomcat 并开始完全导入。当我现在搜索时,字段 bibcode 仍然包含内容,我不明白它来自哪里。

我究竟做错了什么?

0 投票
2 回答
836 浏览

database - SOLR 和 Sybase:DIH 完全导入失败

我尝试从需要 Sybase 驱动程序进行连接的数据库中导入。

使用数据配置从 DIH 完全导入:

失败并抛出异常

严重:完全导入失败 org.apache.solr.handler.dataimport.DataImportHandlerException:无法执行查询:调用 WS.getCrefoSearchFieldsLimited('RU', '2011-10-01', 10) Processing Document #1 at org.apache。 org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:253) 在 org.apache.solr.handler.dataimport.JdbcDataSource 的 solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:72) .getData(JdbcDataSource.java:210) 在 org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:39) 在 org.apache.solr.handler.dataimport.SqlEntityProcessor.initQuery(SqlEntityProcessor.java:58 ) 在 org.apache.solr 的 org.apache.solr.handler.dataimport.SqlEntityProcessor.nextRow(SqlEntityProcessor.java:71)。handler.dataimport.EntityProcessorWrapper.nextRow(EntityProcessorWrapper.java:237) at org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357) at org.apache.solr.handler.dataimport.DocBuilder.doFullDump( DocBuilder.java:242) 在 org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在 org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在 org .apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) 原因:java.lang.NullPointerException at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) ... 11 更多nextRow(EntityProcessorWrapper.java:237) 在 org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357) 在 org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242)在 org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在 org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在 org.apache.solr.handler org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) 处的 .dataimport.DataImporter.runCmd(DataImporter.java:389) 原因:org.apache.solr 处的 java.lang.NullPointerException。 handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) ... 11 更多nextRow(EntityProcessorWrapper.java:237) 在 org.apache.solr.handler.dataimport.DocBuilder.buildDocument(DocBuilder.java:357) 在 org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242)在 org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在 org.apache.solr.handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在 org.apache.solr.handler org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) 处的 .dataimport.DataImporter.runCmd(DataImporter.java:389) 原因:org.apache.solr 处的 java.lang.NullPointerException。 handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) ... 11 更多357) 在 org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在 org.apache.solr 的 org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242) .handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在 org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) 在 org.apache.solr.handler.dataimport.DataImporter$1。运行(DataImporter.java:370) 引起:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) 的 java.lang.NullPointerException ... 11 更多357) 在 org.apache.solr.handler.dataimport.DocBuilder.execute(DocBuilder.java:180) 在 org.apache.solr 的 org.apache.solr.handler.dataimport.DocBuilder.doFullDump(DocBuilder.java:242) .handler.dataimport.DataImporter.doFullImport(DataImporter.java:331) 在 org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) 在 org.apache.solr.handler.dataimport.DataImporter$1。运行(DataImporter.java:370) 引起:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) 的 java.lang.NullPointerException ... 11 更多doFullImport(DataImporter.java:331) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) ) 引起:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) 的 java.lang.NullPointerException ... 11 更多doFullImport(DataImporter.java:331) at org.apache.solr.handler.dataimport.DataImporter.runCmd(DataImporter.java:389) at org.apache.solr.handler.dataimport.DataImporter$1.run(DataImporter.java:370) ) 引起:org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.(JdbcDataSource.java:251) 的 java.lang.NullPointerException ... 11 更多

我是否使用了错误的 url 或错误的 dataSource 声明?我可以通过 sql 客户端访问该过程。

0 投票
1 回答
974 浏览

localization - 如何使用 DIH 或 copyfiled 或 sql cast 运算符将 2 个字符串转换为 Solr 位置数据字段?

我有schema.xml以下几点:

我设法从数据库中导入纬度,只要字符串:

如何使用简单的解决方案将 2 个刺痛复制/转换为双倍?

更新 1: 好的,从字符串到双精度的转换工作正常,非常感谢您的解决方案!我现在拥有的是两个双重领域:

以及我想要的:一个位置字段中的 2 个双精度值:

到目前为止我尝试过并且不起作用的方法:

有什么简单的解决办法吗?提前致谢!

0 投票
4 回答
4309 浏览

solr - 在 solr dih 在一个位置导入两个双精度

我现在拥有的是两个双重领域:

以及我想要的:一个位置字段中的 2 个双精度值:

到目前为止我尝试过并且不起作用的方法:

有什么简单的解决办法吗?提前致谢!

0 投票
1 回答
2168 浏览

solr - 在多核 solr 中配置 DIH

我有一个 solr 的多核实现。我想配置 DIH/核心。我设法使它在单核 solr 上工作。我假设,我必须进行配置/核心,这意味着我在核心的 conf 目录中创建 data-import.xml 并重写核心的 solrconfig.xml。我还在 lib 中复制了 dih 的加工驱动程序,但我收到一条错误消息:

org.apache.solr.common.SolrException:在 org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:389) 加载类“org.apache.solr.handler.dataimport.DataImportHandler”时出错...... …………………………………………………………………………………………………………………………………………

引起:java.lang.ClassNotFoundException: org.apache.solr.handler.dataimport.DataImportHandler at java.net.URLClassLoader$1.run(URLClassLoader.java:217) at java.security.AccessController.doPrivileged(Native Method) at java .net.URLClassLoader.findClass(URLClassLoader.java:205) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:321) 在 java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:615) 在 java.lang.ClassLoader。 loadClass(ClassLoader.java:266) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader. java:373) ... 49 更多

任何线索,我做错了什么?提前致谢。

0 投票
1 回答
515 浏览

solr - SOLR DIH 调度程序不工作

我在dataimport.properties文件中设置了 solr 调度程序属性以更新索引,如在

间隔 = 1,但之后我在表中创建了新记录并再次搜索相同的关键字,但结果中没有出现新记录,总记录数也增加了一条记录。

我有什么遗漏吗

0 投票
3 回答
2981 浏览

java - 为什么我不能在 JBoss 上的 Solr 中实例化 DataImportHandler?

我正在尝试在 JBoss 5.1 上设置 Solr 3.5.0。一切都很好。我将war复制到deploy dir中,将dist和contrib目录中的所有依赖项复制到lib(或更早的deploy)目录中。

我可以启动服务器,一切正常,但是每当我想激活 DataImportHandler 以索引数据库中的数据时,都会出现错误。

基本上我所做的是我复制的是我从 example/example-DIH/solr/db 复制一个核心(或整个示例,没关系),我在 solr.xml 中注册核心,在启动时我收到一个错误:

我很确定我的请求处理程序定义是正确的,但只是为了确定:

据我所知,这个错误可能是由 DataImportHandler 和 SolrRequestHandler 被认为是持有不同的类加载器引起的。

每当我从示例中的 start.jar 应用程序启动 Solr 时(我认为它启动了一个 Jetty 服务器),它都可以正常工作。

我的问题是:这真的是因为类加载器问题还是其他原因?而且,更重要的是:我该如何解决?

0 投票
1 回答
2363 浏览

solr - Solr ScriptTransformer 返回值

我有以下字段:

  • 在数据库中,我有一个字段property_industry_sector,它是逗号分隔的整数列表,null 或空字符串
  • 在 Solr 模式配置中,我有相同property_industry_sector类型的intmultivalued字段。

我的问题是我必须处理DataImportHandler配置差异,我的尝试如下所示:

其中ScriptTransformer具有以下定义:

问题是一般情况下,当值为空或空字符串时,因为无论转换器做什么,我仍然得到以下异常

我不明白空字符串的来源(它试图转换为整数),同时也被它试图在异常上方插入的值弄糊涂了:

我已经尝试在put()通话之前清除该行。返回null,或者与当前示例一样返回具有单个值的行0

0 投票
2 回答
4066 浏览

solr - 最简单的 Solr DIH 索引

我正在尝试使用 DIH 从 Solr 中的数据库中索引数据。

所以我修改了两个配置文件如下:

solrconfig.xml

数据配置.xml

source_scellee 是我的测试数据库上的表的名称。它包含许多字段。

显然,我只想运行一个简单的测试。当运行http://localhost:8983/solr/dataimport?command=full-import&clean=false&commit=true我得到以下结果

除了服务器日志上没有警告或错误。4 是我在表“source_scellee”中的记录数。但它说所有文件都失败了。

如果我从http://localhost:8983/solr/admin/运行查询,则 根本不会出现任何结果!我该如何解决?(“ : ” 显示没有结果)

感谢您的帮助!!!

----edit--- 我已将这些行添加到我的 schema.xml :

但是结果仍然是一样的:查询时没有结果(我尝试重新启动 solr,并重新索引所有)

------第二次编辑--- 我已经尝试过动态导入现在我的data-config.xml看起来像这样: