如何在 Solr 中通过 DataImportHandler 处理多个 MySQL 表?

How to handle Multiple MySQL Tables by DataImportHandler in Solr?

我在 MySQL 中有 33 张桌子。搜索中将使用大约 20 个表。如何处理和搜索所有这些表?我已经通过 Importing 1 table 实现了这个并且搜索清楚了。

但现在我想在所有 table 中搜索..

我是否为不同的表创建所有新核心??或者我应该在导入数据时使用 JOIN 查询??请给我更好的建议。

这完全取决于您的要求。您可以通过为个人 table 创建核心或通过将几个 tables(考虑 3-4 个 tables 相互关联)连接在一起并索引数据来实现这两种方式进入核心。

我建议选择后者,这样可以最大限度地减少搜索时间。您可以使用 DIH(数据导入处理程序),您可以在其中编写连接查询(获取要搜索的选定搜索字段) 有关系的一对 table。当您搜索特定区域时,您可以在特定核心中搜索。

正如我在我的申请中所拥有的,两个主要领域文档,活动。

我有两个不同的核心命名文档和活动。

我已经在文档核心中索引了与文档相关的数据。当有来自文档区的搜索请求时,搜索在特定的核心即Document.

上执行

同样适用于活动。

多核让您拥有一个具有独立配置和索引的单一 Solr 实例,为非常不同的应用程序提供自己的配置和模式,但仍然具有统一管理的便利。单个索引仍然相当孤立,但您可以将它们作为单个应用程序进行管理,通过启动新的 SolrCore 即时创建新索引,甚至无需重新启动 Servlet 容器就可以让一个 SolrCore 替换另一个 SolrCore。

更多详细信息: https://wiki.apache.org/solr/CoreAdmin