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

Solr 在数据库中索引多个非关系表,solr,dataimporthandler,solr6,Solr,Dataimporthandler,Solr6,我正在使用solr6.4.X索引mysql数据。我已经为相同的设置了dataimporthandler。问题是只要我们在DB中有关系表,它就可以正常工作,但我有10个表,它们之间没有任何关系 我试着将它们添加为渗流实体,但不知什么原因,它不起作用。因此,基本上我需要对两点发表意见: 通过dataimporthandler将非关系表存储到Solr中 从各个表中检索数据(我使用Solrj查询数据) 非常感谢您的帮助。谢谢我不确定DIH设置中的问题是什么,但是有多个实体,每个表一个,而表之间没有关

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

我试着将它们添加为渗流实体,但不知什么原因,它不起作用。因此,基本上我需要对两点发表意见:

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

非常感谢您的帮助。谢谢

我不确定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…

@Pessimoniumm谢谢你的回复,我试图找到,因为你建议它对第一个实体运行良好,但当我尝试索引第二个实体时,它覆盖了第一个表中的数据。我已经添加了配置文件,如果可能的话,请你仔细检查一下,告诉我哪里出错了?谢谢,我的答案。顺便说一句,你应该把你的代码放在这个问题上,这样其他人也可以看到它。