Indexing 如何在Solr/Lucene中索引类型化关系

Indexing 如何在Solr/Lucene中索引类型化关系,indexing,solr,lucene,relationship,denormalization,Indexing,Solr,Lucene,Relationship,Denormalization,有两个实体可以以类型化的方式相互关联。我必须如何对这些表进行非规范化和索引,以便在Solr/Lucene中按特定的实体B和关系类型搜索实体A 例如,假设有实体组织和个人通过下表链接: ------------------------------------------- | link_type | person | organisation | -------------+-------------+--------------- | Founder | Elon Musk

有两个实体可以以类型化的方式相互关联。我必须如何对这些表进行非规范化和索引,以便在Solr/Lucene中按特定的实体B和关系类型搜索实体A

例如,假设有实体
组织
个人
通过下表链接:

-------------------------------------------
|  link_type | person      | organisation |
-------------+-------------+---------------
|  Founder   | Elon Musk   | SpaceX       |
|------------+-------------+--------------|
|  Chairman  | Elon Musk   | SolarCity    |
|------------+-------------+--------------|
|  Founder   | Lyndon Rive | SolarCity    |
|------------+-------------+--------------|
|  Founder   | Elon Musk   | Tesla        |
-------------------------------------------
我希望能够搜索到埃隆·马斯克创建的所有组织。预期的文件结果将是:

[SpaceX, Tesla]

两种可能的解决办法;将每一行作为单个文档编制索引,然后只需查询
链接类型:Founder和person:Elon\Musk

第二个选项是使用动态多值字段,每个组织的名称中都有
link\u type

link_type_Founder:Elon\ Musk

返回的文档是该人员拥有给定链接类型的组织

,非常感谢建议的方法!任何解决方案都有主要的优点或缺点吗?除非行数是一个问题,否则我会选择第一个。这是最简单的。一种常见的策略是对同一数据集使用多个集合/核心,以允许不同的查询;i、 e.您可以使用两个具有不同实现的内核来回答不同的查询(其中对于刻面或其他操作的要求可能不同)。