在数据库中索引多个非关系表
indexing multiple non-relational tables in DB
我正在使用 solr6.4.X 来索引 mysql 数据。我为此设置了 dataimporthandler。问题是只要我们在数据库中有关系表就可以正常工作,但我有 ~10 个表,它们之间没有任何关系。
我尝试将它们添加为独立的实体,但由于某些未知原因它无法正常工作。所以基本上我需要对两点的看法:
- 通过 dataimporthandler 将非关系表存储到 Solr
- 从单个表中检索数据(我正在使用 Solrj 查询数据)。
非常感谢任何帮助。谢谢
不确定您的 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...
我正在使用 solr6.4.X 来索引 mysql 数据。我为此设置了 dataimporthandler。问题是只要我们在数据库中有关系表就可以正常工作,但我有 ~10 个表,它们之间没有任何关系。
我尝试将它们添加为独立的实体,但由于某些未知原因它无法正常工作。所以基本上我需要对两点的看法:
- 通过 dataimporthandler 将非关系表存储到 Solr
- 从单个表中检索数据(我正在使用 Solrj 查询数据)。
非常感谢任何帮助。谢谢
不确定您的 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...