如何使用Solr 5.1.0在DB中使用元数据索引文档

时间:2015-06-10 16:05:22

标签: mysql solr

我使用Apache Solr索引搜索引擎的文档。这些文档存储在我的文件系统上。为了进行分面搜索,我还必须将这些文档包含在存储在MySQL DB中的元数据中。

有没有办法在文件系统中同时索引这些文档,同时还可以从数据库附加/索引相应的元数据进行分面搜索?

如果没有替代方案?提前致谢

1 个答案:

答案 0 :(得分:1)

我不是说德鲁的答案是错误的,但我发现有更直接的方法可以解决这个问题。

经过几天的搜索并在Lucene论坛上发帖后,我能够对这个问题提出一个非常全面的答案。如果要索引数据库和文件系统并让它们为文件及其元数据提交一份综合文档,则有两种方法可以解决。一个比另一个好。

第一种方法是配置DataImportHandler或DIH。这涉及更改solrconfig.xml以启用DIH,然后您需要在正在使用的核心的conf目录中创建一个新的.xml文件。这使你能够

1)点击多个数据源 2)使用数据库中的数据在文件系统中查找文件。 IE在这种情况下是文件路径。

此链接将帮助您配置多个数据源并了解DIH的功能

Data Import Handler Documentation

此链接将帮助您设置DIH并将其连接到数据库。我推荐两个部分。

Configuring the data import handler and connecting it to a database

这是我最后的DIH配置文件供参考

{{1}}

警告大型PDF,这使得Solr SLOW并可能最终杀死它。这是因为您正在处理Solr中的文档并且它会杀死Tika。这就是为什么我最终无法使用这种方法导致我推荐给那些索引富文档的方法。

您必须创建自己的索引器。我使用了一种名为SolrJ的东西。它是一个Java API,可让您访问Solr。详细介绍需要很长时间,但这里有一个SolrJ骨架的链接,用于索引文件系统和数据库SEPARATELY。我能够将它们组合在一起,创建一个Solr文档,其中包含数据库中的元数据集和文件系统中的文件。我更喜欢这个,因为它可以快速处理并让我对我的领域有更多的控制权。

这是骨架教程的链接。祝好运。希望这会有所帮助。

Indexing a file system and database using SolrJ