问题标签 [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.
mysql - Solr - 数据导入处理程序 - 完全导入 - 默认情况下 Clean=False?
版本:apache-solr-3.5.0
对于完全导入,您可以设置 url 参数 clean=false。
但是,是否可以将“clean”默认设置为“false”,例如 XML 配置之类的东西?
如果没有,是否可以以任何方式禁用完全导入?
谢谢!
database - Solr - DataImportHandler:尝试使用列值作为字段名时,多值字段只保留第一个结果
我正在尝试使用类似于以下的文档配置执行完全导入:
假设 parent.ID=1 的 child_table 的字段/值结果如下所示:
以及 fieldA 和 fieldB 的架构配置(注意 fieldB 是多值的):
运行完全导入后,父 1 的文档如下所示:
但是,我需要(并且期望)它看起来像这样(fieldB 应该有多个值):
任何帮助将不胜感激!!谢谢!
Solr 版本:4.0.0.2012.08.06.22.50.47
solr - solr 中的数据库故障转移场景
考虑有两个 MySQL 数据库,如DB1和DB2,它们包含相同的数据集。在 solr 应用程序中,我们指向 DB1 来获取记录。如果 DB1 由于某种原因宕机,那么 Solr 需要从 DB2 中获取包含 DB1 镜像数据的记录。
有没有办法在Solr中实现这种数据库故障转移场景?
php - Solr 中的近重复检测
Solr 被用于搜索用户生成列表的数据库。这些清单通过 DataImportHandler 从 MySQL 导入到 Solr。
问题:很多时候,用户向数据库报告相同的列表,有时会对其列表帖子进行细微更改,以避免被轻易检测为重复帖子。
我应该如何使用 Solr 实现近似重复检测?只要搜索结果不包含这些近乎重复的列表,我不介意在 Solr 索引中有近乎重复的列表。
我想有 4 个可能的地方可以进行这种近乎重复的检测
- 当用户提交列表时(此处使用 PHP)
- 在从 MySQL 到 Solr 的数据导入期间
- 从 MySQL 导入数据后
- 搜索完成时
推荐的方法是什么?谢谢!
solr - 在 Solr DataImportHandler 中索引 HTML
我目前正在使用 JdbcDataSource 从 SqlServer 后端导入文档。一些字段中包含原始 HTML。我想在索引之前剥离 HTML。问题是索引时某些东西正在编码开头的“<”字符。最终,我想使用 HTMLStripTransformer 从 JobDescription 字段中删除所有 HTML,但是,它不会删除任何内容,因为半编码内容看起来不像 html。
数据配置.xml
调试窗口的输出
在数据库中,JobDescription 列具有以下内容:
mysql - Solr DataImportHandler MySQL 5.0 SELECT CONCAT 查询结果是 base64 编码的
我已经启动并运行了 Solr 4.0,并使用 DataImportHandler 从 MySQL 导入数据。
我注意到如果我将 DataImportHandler 指向 MySQL 5.5 数据源,那么一切都会按预期工作。但是,当使用完全相同的 Solr/DataImportHandler 配置和完全相同的数据库但在 MySQL 5.0 上运行时,某些字段会返回 base64 编码。
data-config.xml 中的相关条目
当我运行指向 MySQL 5.5 的导入时,我得到:
当我运行指向 MySQL 5.0 的导入时,我得到带有 base64 编码 ID 的文章:
所有其他字段都正确返回。
两个数据库上的排序规则和字符集是相同的。
任何帮助表示赞赏。
solr - Solr - 一个数据导入处理程序记录下的多个附件
我正在使用数据导入处理程序 (DIH) 在 solr 中创建文档。每个文档将有零个或多个附件。附件(例如 PDF、Word 文档等)的内容被解析(通过 Tika)并与附件的路径一起存储。附件的内容(和路径)没有存储在数据库中(我不想这样做)。
我目前有一个包含 DIH 所需的所有字段的模式。然后我还添加了一个附件内容和附件路径字段作为多值。但是,当我使用 Solrj 添加文档时,solr 只存储和索引一个附件(最后添加的一个)。这是代码:
如何让 solr 存储多个附件(内容和路径)?还是有更好的方法来实现这一点?
search - 使用 dataimporthandler solr 导入 csv
我正在尝试将 solr 与 DIH 一起使用来索引 csv 文件。我已经使用 solr wiki 上提到的补丁 SOLR-2549 修补了我的 DIH 库(请参阅http://wiki.apache.org/solr/DataImportHandler#Configuration_in_data-config.xml-1),以便在不使用 Transformers 的情况下导入 csv 文件连同 LineEntityProcessor。
不幸的是,我无法进行导入工作,并且出现以下错误堆栈:
我认为这与我的数据配置有关。这是我的 data-config.xml 文件:
任何人都可以帮助我理解这个问题或使用修补的 LineEntityProcessor 版本提供一个清晰的配置文件来导入 csv 文件吗?
solr - Solr + DIH + Tika :索引大量文件,如何处理删除的文件?
我有大量的 PDF/Word/Excel/等。要索引的文件(现在 40GB,但在某些月份可能高达 1000GB),我正在考虑使用 Solr,带有 DataImportHandler 和 Tika。我已经阅读了很多关于这个主题的主题,但是有一个问题我仍然没有找到解决方案:如果我索引所有文件(完整或增量导入),删除文件系统中的一个文件,然后再次索引(使用delta import),则不会从索引中删除该文件对应的文档。
这里有一些可能性:
- 进行完全导入。但我想尽可能避免这种情况,因为我认为这可能非常耗时(几天,但不是很重要)和带宽消耗(主要问题,因为文件位于共享网络驱动器上)。
- 实现一个脚本,该脚本将验证索引中的每个文档是否存在相应的文件(占用更少的带宽)。但我不知道我是否应该在 Solr 内部或外部执行此操作,以及如何操作。
您还有其他想法或执行第二种解决方案的方法吗?提前致谢。
一些细节:
- 我将使用 FileListEntityProcessor 的“newerThan”选项进行增量导入。
- 如果我存储文档被索引的日期,它对我没有帮助,因为如果我在上次导入时没有索引一个文档,可能是因为他已被删除或因为它没有更改(增量导入)
- 我既有存储字段也有未存储字段,因此我认为使用 Solr 4.0 的新可能性仅更改文档中的一个字段不是解决方案。
solr - Solr DIH 中的联接查询和嵌入式实体有什么区别?
我正在尝试使用 Solr 的数据导入处理程序跨多个表索引数据。DIH 上的官方 wiki建议使用嵌入式实体来链接多个表,如下所示:
另一种有效的方法是:
这两种方法在功能上是否不同?有性能差异吗?我的猜测是第一种方法是支持非 SQL 表,但我不确定。
另一个问题是,如果在 MySQL 中使用连接表,使用带有多个连接的 SQL 查询方法可能会导致多个文档被索引而不是一个。