我在 MySQL 中有 33 个表。搜索中将使用大约 20 个表。如何处理和搜索所有这些表?我已经通过导入 1 个表并清楚地搜索来实现它。
但现在我想在所有表中搜索..
我是否为不同的表创建了所有新的核心??或者我应该在导入数据时使用 JOIN 查询??请给我更好的建议。
最佳答案
这完全取决于您的要求。您可以通过为单个表创建核心或通过将几个表(考虑 3-4 个相互关联的表)连接在一起并将数据索引到核心中来执行这两种方法。
我建议选择后者,这样可以最大限度地减少搜索时间。您可以使用 DIH(数据导入处理程序),您可以在其中编写连接查询(获取要搜索的选定搜索字段) 有关系的几个表。当您搜索特定区域时,您可以在特定核心中进行搜索。
正如我在我的申请中所拥有的,两个主要领域文档、事件。
我有两个不同的核心命名文档和事件。
我已经在document core中索引了与document相关的数据。当有来自文档区的搜索请求时,搜索在特定的核心即文档上执行。
同样适用于事件。
多核让您拥有一个具有独立配置和索引的单一 Solr 实例,为非常不同的应用程序提供自己的配置和模式,但仍然具有统一管理的便利。各个索引仍然相当孤立,但您可以将它们作为单个应用程序进行管理,通过启动新的 SolrCore 即时创建新索引,甚至无需重新启动 Servlet 容器即可让一个 SolrCore 替换另一个 SolrCore。
关于php - 如何在 Solr 中通过 DataImportHandler 处理多个 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30026125/