问题标签 [dataimporthandler]

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 回答
736 浏览

sqlite - DataImportHandler 没有报错但没有完成

我试图说服 solr 执行 sqlite 数据库的批量导入。我将 DataImportHandler 配置为通过 jdbc 成功打开该数据库,我可以使用 wget http://localhost:8080/solr/dataimport?command=full-import开始导入,但无论我做什么,solr 似乎只索引前 499文件(由 wget http://localhost:8080/solr/dataimport?command=status报告)。

jetty 日志文件不报告任何错误消息。相反,它报告索引结束:

我做错了什么?

0 投票
2 回答
1621 浏览

xml - Solr DataImportHandler 不适用于 XML 文件

我对 Solr 很陌生。我成功地通过 DIH 从我的 sql 数据库中索引数据。现在我想导入 xml 文件并通过 DIH 对它们进行索引,但它不起作用!我的 data-config.xml 看起来像这样:

我在 schema.xml 中有以下字段:

<field name="journal" type="text" indexed="true" stored="true" required="true" /> <field name="authors" type="text" indexed="true" stored="true" required="true" />

当我运行 Solr 时,我没有收到任何错误,也没有索引文档:

谁能告诉我我做错了什么?!我什至仔细检查了路径语法......

0 投票
2 回答
2371 浏览

solr - Solr - 如何从我的 DataImportHandler 接收导入失败的通知?

我们的 solr 索引会根据计划刷新,也可以根据需要通过 DataImportHandler 完全导入进行任意刷新。我们遇到过几次由于各种原因导致导入失败的情况。

如何在使用 DataImportHandler 执行导入时收到错误通知(最好是电子邮件)?

0 投票
2 回答
2142 浏览

performance - Solr 可以在内存中连接表吗?

有一个n产品表,以及这些产品的特性表。每个产品都有很多功能。给定 Solr DataImportHandler配置:

Solr 将运行n + 1查询以获取此数据。1对于主查询,n用于获取特征的查询。这对于大量项目是低效的。是否可以配置 Solr 使其分别运行这些查询并将它们加入内存中?将获取两个表中的所有行。

0 投票
1 回答
197 浏览

mysql - 将 MySQL DB 和 XML 混合处理成 Solr 索引

问题:

MySQL 中的一个表,它有几个普通字段和一个保存 XML 的文本字段

我需要使用 Solr 数据导入处理程序将此表处理为 Solr 索引。
但是,需要将 XML 字段分别解析为其他几个 solr 字段

问题:

  1. 是否可以在不必编写自定义 Transformer 的情况下做到这一点?如果是的话如何。我可以将 XPathEntityProcessor 与我的 SQL DB 一起用作数据源吗?

  2. 如果我编写一个自定义转换器,我该如何在 dataConfig 中配置它?

  3. 我正在使用旧版本的 solr (1.4.1),所以我可以将一个带有新类的新 jar 放入我的 solr web-app 中吗?

我不太确定的是我需要如何配置 data-config.xml 来做到这一点。如果有人有任何例子,请分享!谢谢。

0 投票
5 回答
29098 浏览

csv - SOLR - 从 csv 文件导入 2000 万个文档的最佳方法

我目前的任务是找出在 solr 中加载数百万个文档的最佳方法。数据文件是以 csv 格式从 DB 导出的。

目前,我正在考虑将文件拆分为较小的文件并在使用 curl 发布这些较小的文件时创建一个脚本。

我注意到,如果您发布大量数据,大多数情况下请求都会超时。

我正在研究数据导入器,这似乎是一个不错的选择

任何其他想法高度赞赏

谢谢

0 投票
2 回答
3526 浏览

architecture - 高流量网站上的 Solr 安全数据导入和核心交换

各位技术人员您好,

假设我们有一个(PHP)网站,每月有数百万访问者,我们在网站上运行一个 SolR 索引,托管了 400 万个文档。Solr 在 4 台独立的服务器上运行,其中一台服务器是主服务器,其他 3 台服务器是复制的。

每 5 分钟可以数千个文档插入 Solr。除此之外,用户可以更新他们的帐户,这也应该触发 solr 更新。

我正在寻找一种安全的策略来快速安全地重建索引而不会丢失任何文档。并有一个安全的增量/更新策略。我已经考虑过一种策略,我想在这里与专家分享,以听取他们的意见,以及我是否应该采用这种方法,或者他们是否会提出(完全)不同的建议。

Solr 数据导入

对于所有操作,我想使用一个数据导入处理程序。我想将数据和增量导入混合到一个配置文件中,例如DataImportHandlerDeltaQueryViaFullImport。我们使用 MySQL 数据库作为数据源。

重建索引

为了重建索引,我有以下几点;我们在“live”核心附近创建了一个名为“reindex”的新核心。使用 dataimporthandler,我们完全重建了整个文档集(400 万个文档),总共需要大约 1-2 小时。在实时索引上,每分钟仍有一些更新、插入和删除。

经过大约 1-2 小时的重建后,新索引仍然不是最新的。为了使延迟更小,我们对新内核执行一次“增量”导入,以提交过去 1-2 小时内的所有更改。完成此操作后,将进行核心交换。每分钟运行一次的普通“delta”导入处理程序将选择这个新核心。

提交更新到实时核心

为了让我们的实时核心保持正常运行,我们每分钟运行一次增量导入。由于核心交换,重新索引核心(现在是活动核心)将被跟踪并保持最新。我猜如果这个索引被延迟几分钟应该不是问题,因为 dataimport.properties 也会被交换?delta-import 已经超过了这些分钟的延迟,但应该是可能的。

我希望你能理解我的情况和我的策略,如果我在你眼中做对了,我会给出建议。另外我想知道是否有我没有想到的瓶颈?我们正在运行 Solr 1.4 版。

我确实有一个问题是,复制呢?如果主服务器交换核心,从属如何处理?

交换等时丢失文件是否有任何风险?

提前致谢!

0 投票
2 回答
1705 浏览

solr - Solr 完全刷新不清除索引

我遇到了 Solr 在完全导入期间不会清除索引的问题。

所有服务器都运行 Solr 3.4,配置尽可能简单。

我在我们的开发环境和我自己的计算机上的一个实例上尝试了这个,并收到了类似的结果。

架构相当简单,这些是要点:

注意: - document_id 字段是在用于填充索引的物化视图中计算的,它是不在此索引中的其他字段的组合,但独立于 entity_id。它是独一无二的。- entity_id 字段是几个表的键,对于相同的 document_id,它可以在刷新和另一个之间剧烈变化。

在完全刷新之前,如果我这样查询索引:

我得到:

然后我刷新:

(我知道清理、提交和优化是多余的,但我使用它们只是为了确保),过了一会儿我得到了一切正常的消息。

然后我再次查询索引:

我得到:

但是在数据库中 entity_id 是不同的!

我看到 Timestamp 已更新,因此记录已被触及,但为什么保留旧值?

0 投票
2 回答
899 浏览

solr - 没有数据导入处理程序的 Solr 加载信息

我有 700.000 个街道名称、8111 个市镇名称和 80333 个地区邮政编码。我想在 solr 中索引所有这些信息。用户希望通过 ajax 自动完成表单搜索此信息。我已经用很少的数据证明了这一点,并且 ajax 自动完成表单的行为没问题。

将所有数据加载到 solr 时会出现问题

  • 我应该如何将信息加载到 solr 服务器(我在一个 grails 应用程序中,我需要加载具有没有数据输入处理程序的信息的实例)今天我今天已经做了很多小时,最后 grails 控制台崩溃了:( --> 我应该使用 grails 脚本而不是使用 grails 控制台执行服务并执行它吗?
  • 或者我应该使用数据输入处理程序来更快地加载它?我可以使用数据输入处理程序连接来自不同表的不同列的字符串值吗?

(可以为每个(700.000 + 8111 + 80.333 个文档)使用不同的文档??)

谢谢你的时间

0 投票
1 回答
1405 浏览

architecture - 在 SWAP 核心(reindex -> live)之后,我的从机已损坏

我在这里遇到了一个非常奇怪的问题,我已经按照我的设想设置了我的 solr 架构,除了我 Solr 从机损坏之外,一切正常。(测试)设置如下:

Solr 设置

  • 一个具有两个核心的 Solr 主控器(重新索引和实时)
  • 一个具有两个核心的 Solr 从站(重新索引和实时)
  • 轮询间隔设置为 00:00:02
  • 在优化或提交后复制
  • 在 Ubuntu (11.10) 版本 1.4.0 下运行 Solr。

过程

整个过程是这样的:

  1. 我们擦除主 reindex 核心上的索引
  2. 我们为重新索引核心禁用主服务器上的复制
  3. 我们启动 DataImportHandler 以 10.000 个文档为单位导入 MySQL 数据(以防止长时间的 mysql 锁定)
  4. DataImportHandler 完成后(400 万条记录),我们在主服务器上启用复制
  5. 从站将从主站获取新的重新索引核心
  6. 通过查看“ isReplicating ”属性完成获取后,我们会发出核心交换

假设在完全重建后,活动核心有 5000 个文档,重新索引核心有 20000 个。

(错误的)结果

交换后结果如下:

主:活(20000),重新索引(5000) 从:活(20000),重新索引(20000)

看起来奴隶将他的重新索引核心复制到活动核心,但没有像主人那样将活动核心与重新索引核心交换。问题是我猜从服务器认为它比主服务器更新,结果是重新索引核心上的复制已失效。

以下是发出 SWAP 后的一些日志消息:

如果我手动执行所有操作,则在第 6 步之前一切正常。核心交换后一切都崩溃了。

我希望有人可以帮助我或告诉我我做错了什么.. 进行核心交换时是否应该禁用复制?有小费吗?