【问题标题】:indexing multiple non-relational tables in DB索引数据库中的多个非关系表
【发布时间】:2017-04-27 08:09:20
【问题描述】:

我正在使用 solr6.4.X 来索引 mysql 数据。我有相同的设置 dataimporthandler 。问题是只要我们在 DB 中有关系表就可以正常工作,但我有大约 10 个表,它们之间没有任何关系。

我尝试将它们添加为渗透实体,但由于某些未知原因它无法正常工作。所以基本上我需要对 2 点的看法:

  • 通过 dataimporthandler 将非关系表存储到 Solr 中
  • 从单个表中检索数据(我正在使用 Solrj 来查询数据)。

非常感谢任何帮助。谢谢

【问题讨论】:

    标签: solr dataimporthandler solr6


    【解决方案1】:

    不确定您的 DIH 设置有什么问题,但是有几个实体,每个表一个,表之间没有关系是完全可以的。工作没有任何问题。你的问题应该是可以解决的。

    在不了解您的问题的情况下,一个猜测:人们在这种情况下面临的一个典型问题是他们使用每个表中的 pk 作为 Solr 文档 ID,并且他们在 Solr 端相互覆盖。您必须将表中唯一的内容附加到 solr id 中,以便它们在 Solr 中是唯一的。

    编辑:是的,问题是我猜的,你有这个:

    <entity name="encounter_notes" pk="id" query="SELECT * from encounter_notes">
            <field column="id" name="id" />
            <field column="encouter_id" name="encouter_id" />
    

    每个实体的id会互相覆盖,对所有表都这样做:

    <entity name="encounter_notes" pk="id" query="SELECT CONCAT('notes_',id) as id, ... from encounter_notes">
            <field column="id" name="id" />
            <field column="encouter_id" name="encouter_id" />  
    

    所以您的 ID 如下:notes_1、notes_2、financial_class_1...

    【讨论】:

    • @Persimmoniumm 感谢您对此的回复,我试图按照您的建议找到它对第一个实体工作正常,但是当我尝试索引第二个实体时,它覆盖了第一个表中的数据。我已经添加了配置文件here,如果可能的话,请你看看它并告诉我哪里出错了?谢谢。
    • 编辑了我的答案。顺便说一句,您应该将代码放在问题上,以便其他人也可以在那里看到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-13
    • 1970-01-01
    • 1970-01-01
    • 2018-02-15
    • 1970-01-01
    相关资源
    最近更新 更多