如何在 Solr/Lucene 中索引类型化关系
How to index typed relationships in Solr/Lucene
有两个实体可以以类型化的方式相互关联。我必须如何对这些 table 进行非规范化和索引,以便通过特定实体 B 和关系类型在 Solr/Lucene 中搜索实体 A?
例如,假设有实体 organisation
和 person
通过以下 table:
链接
-------------------------------------------
| link_type | person | organisation |
-------------+-------------+---------------
| Founder | Elon Musk | SpaceX |
|------------+-------------+--------------|
| Chairman | Elon Musk | SolarCity |
|------------+-------------+--------------|
| Founder | Lyndon Rive | SolarCity |
|------------+-------------+--------------|
| Founder | Elon Musk | Tesla |
-------------------------------------------
我希望能够搜索 Elon Musk 创立的所有组织。预期的文档结果将是:
[SpaceX, Tesla]
两种可能的解决方案;将每一行作为单个文档进行索引,然后只查询 link_type:Founder AND person:Elon\ Musk
.
第二个选项是在每个组织的名称中使用动态多值字段和 link_type
:
link_type_Founder:Elon\ Musk
返回的文件是此人拥有给定 link_type
.
的组织
有两个实体可以以类型化的方式相互关联。我必须如何对这些 table 进行非规范化和索引,以便通过特定实体 B 和关系类型在 Solr/Lucene 中搜索实体 A?
例如,假设有实体 organisation
和 person
通过以下 table:
-------------------------------------------
| link_type | person | organisation |
-------------+-------------+---------------
| Founder | Elon Musk | SpaceX |
|------------+-------------+--------------|
| Chairman | Elon Musk | SolarCity |
|------------+-------------+--------------|
| Founder | Lyndon Rive | SolarCity |
|------------+-------------+--------------|
| Founder | Elon Musk | Tesla |
-------------------------------------------
我希望能够搜索 Elon Musk 创立的所有组织。预期的文档结果将是:
[SpaceX, Tesla]
两种可能的解决方案;将每一行作为单个文档进行索引,然后只查询 link_type:Founder AND person:Elon\ Musk
.
第二个选项是在每个组织的名称中使用动态多值字段和 link_type
:
link_type_Founder:Elon\ Musk
返回的文件是此人拥有给定 link_type
.