在数据库中索引多个非关系表

indexing multiple non-relational tables in DB

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

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

非常感谢任何帮助。谢谢

不确定您的 DIH 设置中的问题是什么,但是有多个实体,每个 table 一个,并且 table 之间没有关系是完全可以的。工作没有任何问题。你的问题肯定是可以解决的。

在不了解你的问题的情况下,一个猜测:人们在这种情况下面临的一个典型问题是他们使用来自每个 table 的 pk 作为 Solr doc id,并且他们在 Solr 端互相覆盖。您必须将 table 独有的内容附加到 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 将相互覆盖,对所有 table 执行此操作:

<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...