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

标签 php mysql solr lucene

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

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

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

最佳答案

这完全取决于您的要求。您可以通过为单个表创建核心或通过将几个表(考虑 3-4 个相互关联的表)连接在一起并将数据索引到核心中来执行这两种方法。

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

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

我有两个不同的核心命名文档和事件。

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

同样适用于事件。

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

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

关于php - 如何在 Solr 中通过 DataImportHandler 处理多个 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30026125/

相关文章:

javascript - 从mysql和angular中删除数据

javascript - 找到某个item的最后一个类,并根据点击的item发布数据

javascript - 数字插入数据库,但不插入字符或数字/字符

hadoop - 如何以mapReduce方式建立Lucene索引?

php - 实体的 Doctrine2 动态表名

php - 我将如何在我的 PHP/MySQL 网站上记录搜索?

mysql - Opencart 基于重量的运输

mysql - 使用自引用列更新 MySQL 表

ruby-on-rails - 如何使用 Sunspot Solr 搜索多个表(模型)?

php - 使用(出)Solr 进行分面搜索