GraphDB:使用嵌入式存储库的相似性搜索

GraphDB: use similarity search with embedded repository

我一直在使用来自 workbench 的 GraphDB(9.2 版)相似性搜索。现在我还想使用 graphdb-free-运行time 9.2.1 将此功能用于嵌入式存储库。但是,我不知道如何从 运行 时间提供的 API 中使用此功能。我的问题是:

欢迎任何提示或指点。

您可以添加相似性插件运行时,按照 "graphdb.extra.plugins" 属性 设置到相似性插件(您可以在 GDB 实例中找到这样的目录 -> dist/lib/plugins)所在的目录,或者:

  1. -Dgraphdb.extra.plugins=目录
  2. System.setProperty("graphdb.extra.plugins", "directory");

您可以使用 SPARQL 以编程方式创建索引或:

创建相似文本索引"allNews"执行以下更新:

PREFIX : <http://www.ontotext.com/graphdb/similarity/>
PREFIX inst: <http://www.ontotext.com/graphdb/similarity/instance/>
PREFIX pred: <http://www.ontotext.com/graphdb/similarity/psi/>
insert {
    inst:allNews :createIndex "-termweight idf" ;
        :analyzer "org.apache.lucene.analysis.en.EnglishAnalyzer" ;
        :documentID ?documentID .
        ?documentID :documentText ?documentText .
} where {
    SELECT ?documentID ?documentText {
        ?documentID ?p ?documentText .
        filter(isLiteral(?documentText))
    }
}

删除索引 "allNews" 执行以下更新:

PREFIX :<http://www.ontotext.com/graphdb/similarity/>
PREFIX inst:<http://www.ontotext.com/graphdb/similarity/instance/>

insert { inst:allNews :deleteIndex '' } where {}

重建索引"allNews":

PREFIX :<http://www.ontotext.com/graphdb/similarity/>
PREFIX inst:<http://www.ontotext.com/graphdb/similarity/instance/>

insert { inst:allNews :rebuildIndex '' } where {}

接着是创建查询!

要列出所有已创建的索引,请执行以下查询:

PREFIX :<http://www.ontotext.com/graphdb/similarity/>
PREFIX inst:<http://www.ontotext.com/graphdb/similarity/instance/>

select ?index ?status ?type
where {
  ?index :status ?status .
  ?index :type ?type .
}