【问题标题】:Solr index multiple tables from MySQLSolr 索引 MySQL 中的多个表
【发布时间】:2013-12-17 03:31:04
【问题描述】:

我有以下mysql表

 1. user(user_id,email) 
 2. tweets(tweet_id,user_id,tweet) 
 3. tags(tag_id,tag)
 4. tweets_tags(tweet_id,tag_id)

我想在应用程序的“我的推文”选项卡下显示当前用户的推文。我想从 Solr 获取以下数据

user_id
email
tweet where user_id=x
tags where tweet_id=xx

如何在 Solr 上索引那些 mysql 表?我只知道 Full/Delta importschema.xmldata-config.xml 的代码。

注意:我不是在询问 MySQL 连接器等问题,我已经完成了。

【问题讨论】:

    标签: mysql indexing solr multiple-tables


    【解决方案1】:

    如果您使用的是 DIH (dataimporterhandler),我想该链接应该是您的解决方案: Import with sub entities 如果您在编写确切配置时遇到问题,请告诉我,我可以为您提供帮助。

    【讨论】:

    • 我已经阅读了该页面,我需要知道的是一些查询非常复杂,我们需要使用 php 数组处理它们,运行一个查询,获取结果,然后使用数据运行另一个查询从结果。如何使用多个实体或多个核心索引这样的数据。
    • 我建议子实体。假设您想要显示所有表的结果(solr 核心连接查询很慢,非常慢)为了加快导入速度,您可以创建物化视图并在导入时使用子实体:stackoverflow.com/questions/13369226/…
    【解决方案2】:

    您描述的用例似乎不能证明使用 solr 是合理的。您只需确保您有正确的键和索引,然后直接在 mysql 中执行即可。

    如果出于某种原因您必须使用 solr,您可能可以准备所有数据并将其以标签/推文/用户结构的形式提供给 solr

    • user1 - tweet1 - tag1
    • user1 - tweet1 - tag2
    • user1 - tweet2 - tag1

    等等。

    然后从 solr 按用户查询,然后按推文排序和分组,然后标记。 但是我必须再次声明,我刚刚描述的解决方案通过使用普通 sql 实现起来更加安全,并且对结果的置信度更高。

    如果您提供有关所需结果的更多详细信息,我很乐意建议数据库结构以及必要的外键和索引以及获取数据所需的查询。

    【讨论】:

    • 同意这个答案。我对 SOLR POC 有类似的要求,我的做法是对数据进行非规范化并将该查询提供给 DataImportHandler。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2013-07-28
    • 2012-07-03
    • 2012-03-22
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多