【问题标题】:indexing MySQL in Apache Solr在 Apache Solr 中索引 MySQL
【发布时间】:2013-07-28 05:57:47
【问题描述】:

我正在尝试为我的应用程序构建一个搜索引擎。我有一个有近 150 个表的 mysql 数据库。每个表都有一个名为 DB_ID 的唯一字段和其他各种列。现在,当我使用 Apache solr 索引数据时,仅索引 DB_ID 列就足够了吗?此外,我对 Solr 非常陌生,从教程中我找不到如何在 Solr 中索引多个表。就我而言,我有大约 150 张桌子。那么我该如何解决这个问题呢?

【问题讨论】:

  • 另外我必须提到差异表中的各个字段是不同的。没有通用字段。

标签: mysql solr lucene indexing


【解决方案1】:

您的 DB_ID 可能不是一个有用的索引项。如果您希望能够一般地搜索数据库中所有表的记录,您可能需要存储每条记录的 DB_ID 和表名,并 index 任何您希望能够搜索的其他字段。您可以使用相同的字段名称(例如“content”)索引所有这些字段。这将允许通过对 content 字段的简单搜索来搜索每个表的每条记录。我猜想同时索引表名以及存储它会很有用,这样您就可以选择只搜索一个表或表记录的子集。

在您的索引中找到一条 DB 记录后,您就可以获取表名和 DB_ID 并从数据库中检索该记录。

【讨论】:

  • 感谢您的回复!但是我仍然不确定如何将近 150 个表导入到 Solr,这些表没有任何公共字段。我还在某处读到,通常我们索引具有唯一值的字段。是否总是需要索引我们正在运行搜索的字段?
  • 我真的不知道索引具有唯一值的字段是什么意思。为了从另一个数据源(通常是数据库)中提取完整记录,通常只存储一个唯一标识符。但是,是的,您必须索引一个字段才能对其进行搜索。您不需要存储值来搜索它,但你必须索引它。
  • 关于在 solr 中连接多个表的任何帮助?
  • 除了将它们存储在通用内容字段中的可能性之外,实际上并非如此。如果我了解您要查找的内容,我可能会遍历每条记录的行并将它们添加到内容字段,但这确实取决于您的数据以及您需要如何处理或搜索它。
猜你喜欢
  • 1970-01-01
  • 2016-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-06
  • 2012-04-13
相关资源
最近更新 更多