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

时间:2015-05-04 08:53:06

标签: php mysql solr lucene

我在MySQL中有33个表。搜索中将使用大约20个表。如何处理和搜索所有这些表?我已经通过导入1表来实现这一点,并清楚地搜索它。

但现在我想搜索所有表格..

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

1 个答案:

答案 0 :(得分:0)

这完全取决于您的要求。您可以通过以下两种方式创建:通过为单个表创建核心或通过连接几个表(考虑3-4个彼此相关的表)并将数据索引到核心。

我建议你选择稍后会缩短搜索时间的地方。您可以使用DIH(数据导入处理程序)在哪里编写连接查询(获取您要搜索的选定搜索字段) 几个有关系的表。当您搜索特定区域时,您可以搜索特定核心。

正如我在我的申请中所说,两个主要领域是文件,活动。

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

我已将与文档核心中的文档相关的数据编入索引。当有来自文档区域的搜索请求时,在特定核心上执行搜索,即文档。

同样适用于活动。

多个内核允许您拥有一个具有单独配置和索引的Solr实例,并为不同的应用程序提供自己的配置和架构,但仍然具有统一管理的便利性。单个索引仍然相当孤立,但您可以将它们作为单个应用程序进行管理,通过启动新的SolrCore来动态创建新索引,甚至可以在不重新启动Servlet容器的情况下使一个SolrCore替换另一个SolrCore。

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