lucene和本体

时间:2011-04-17 08:59:52

标签: lucene ontology

我对Lucene没有多少经验,但我需要完成一项研究。 我想使用基于本体的Lucene索引。所以,我需要任何建议,我应该使用什么,如何将Lucene与本体领域和类似的东西结合起来。

谢谢,

  • 幸运

1 个答案:

答案 0 :(得分:0)

在Lucene中,您可能会执行类似

的操作
protected Document createDocumentFromTuple(Tuple t) {
    Document doc = new Document(); // this is the Lucene document to create
    String docid = createId(t);
    doc.add(new Field("id", docid, Field.Store.YES, Field.Index.NOT_ANALYZED );
    doc.add(new Field("name", t.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED );
    doc.add(new Field("author", t.getAuthor(), Field.Store.YES, Field.Index.NOT_ANALYZED );
    doc.add(new Field("book", t.getBook(), Field.Store.YES, Field.Index.NOT_ANALYZED );
    return doc;
}

这假设某些分析器不应将这三个字段分解为组成条件;如果这不是正确的假设,请将最后一个参数更改为Field.Index.ANALYZED

Solr等价物(如果你不分析字段可能更有意义,那就是

protected SolrInputDocument createIndexableDocument(Tuple t) {
    SolrInputDocument doc = new SolrInputDocument();
    String docid = createId(t);
    doc.addField("id", docid);
    doc.addField("name", t.getName());
    doc.addField("author", t.getAuthor());
    doc.addField("book", t.getBook());
    return doc;
}

在Solr中,服务器端配置确定存储哪些字段,如何解析它们等等。

在每种情况下,您都需要弄清楚如何为每个元组创建唯一的ID。一种方法是生成三个值的串联(带分隔符)的哈希值。