Indexing 如何在Solr/Lucene中索引类型化关系
有两个实体可以以类型化的方式相互关联。我必须如何对这些表进行非规范化和索引,以便在Solr/Lucene中按特定的实体B和关系类型搜索实体A 例如,假设有实体Indexing 如何在Solr/Lucene中索引类型化关系,indexing,solr,lucene,relationship,denormalization,Indexing,Solr,Lucene,Relationship,Denormalization,有两个实体可以以类型化的方式相互关联。我必须如何对这些表进行非规范化和索引,以便在Solr/Lucene中按特定的实体B和关系类型搜索实体A 例如,假设有实体组织和个人通过下表链接: ------------------------------------------- | link_type | person | organisation | -------------+-------------+--------------- | Founder | Elon Musk
组织
和个人
通过下表链接:
-------------------------------------------
| 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.您可以使用两个具有不同实现的内核来回答不同的查询(其中对于刻面或其他操作的要求可能不同)。