我的项目的一部分是在 ntriples 中索引 spo,我需要一些帮助来弄清楚如何通过 Java(或其他语言,如果可能的话)准确地做到这一点。
问题陈述:我们有大约 10 个扩展名为“. 三倍”。每个文件至少有 10k 三元组。这个文件的格式是多个RDF TRIPLE
<subject1_uri> <predicate1_uri> <object1_uri>
<subject2_uri> <predicate1_uri> <object2_uri>
<subject2_uri> <predicate1_uri> <object3_uri>
…..
…..
我需要执行的是,对这些主题、谓词和客体中的每一个进行索引,以便我们可以快速搜索和检索诸如“给我所有谓词1_uri 的主语和客体”等查询。
我使用此示例进行了尝试,但我看到这是在进行全文搜索。这似乎效率不高,因为 ntriple 文件可能高达每个文件 50MB。
然后我想到不进行全文搜索,而是将 spo 存储为索引文档,并将每个 (s,p,o) 存储为文档字段,并将另一个字段作为 Id(对应 ntriple 文件中 spo 的偏移量)。
我有两个问题:
- Lucene 是我想要实现的唯一选择吗?
- 索引文件本身的大小会大于数据本身大小的一半吗?!
任何和所有的帮助真的很感激。