люцен и онтология - PullRequest
       4

люцен и онтология

3 голосов
/ 17 апреля 2011

У меня мало опыта с Lucene, но мне нужно закончить исследование.Я хочу использовать индексирование Lucene на основе онтологии.Итак, мне нужен любой совет, что мне следует использовать, как сочетать Lucene с областью онтологии и тому подобными вещами.

Спасибо,

  • Счастливчик

1 Ответ

0 голосов
/ 18 апреля 2011

В 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 конфигурация на стороне сервера определяет, какие поля хранятся, как они анализируются и т. Д.

В каждом случае вам нужно будет выяснить, как создать уникальный идентификатор для каждого кортежа.сделать это, чтобы создать хэш конкатенации (с разделителями) из трех значений.

...