Как создать собственный AnalyzerFactory в полнотекстовом поиске GraphDB?

(Использование GraphDB 8.1 бесплатно). http://graphdb.ontotext.com/documentation/free/full-text-search.html говорит, что я могу включить пользовательский AnalyzerFactory для полнотекстового поиска GraphDB, используя luc:analyzer param, реализуя интерфейс com.ontotext.trree.plugin.lucene.AnalyzerFactory, Однако я нигде не могу найти этот интерфейс. Это не в jar graphdb-free-runtime-8.1.0.jar.

Я проверил матрицу функций по адресу http://ontotext.com/products/graphdb/editions/ и, похоже, эта функция "Соединители Lucene" доступна для бесплатной версии GraphDB.

В какой банке com.ontotext.trree.plugin.lucene.AnalyzerFactory интерфейс расположен? что мне нужно импортировать в мой проект для реализации этого интерфейса?

Существуют ли уже существующие AnalyzerFactories, включенные в GraphDB для использования других анализаторов Lucene? (Я заинтересован в использовании FrenchAnalyzer).

Спасибо!

1 ответ

Решение

GraphDB предлагает два разных плагина на основе Lucene.

Я призываю вас использовать Lucene Connector, если у вас нет особого случая для молекул RDF. Вот простой пример, как настроить соединитель с французским анализатором и проиндексировать все значения для rdfs:label предикат для ресурсов типа urn:MyClass, Выберите репозиторий и в представлении запроса SPARQL выполните:

  PREFIX :<http://www.ontotext.com/connectors/lucene#>
  PREFIX inst:<http://www.ontotext.com/connectors/lucene/instance#>
  INSERT DATA {
    inst:labelFR-copy :createConnector '''
  {
    "fields": [
      {
        "indexed": true,
        "stored": true,
        "analyzed": true,
        "multivalued": true,
        "fieldName": "label",
        "propertyChain": [
          "http://www.w3.org/2000/01/rdf-schema#label"
        ],
        "facet": true
      }
    ],
    "types": [
      "urn:MyClass"
    ],
    "stripMarkup": false,
    "analyzer": "org.apache.lucene.analysis.fr.FrenchAnalyzer"
  }
  ''' .
  }

Затем вручную добавьте некоторые тестовые данные из раздела "Импорт"> "Текст":

<urn:instance:test>  <http://www.w3.org/2000/01/rdf-schema#label> "C'est une example".
<urn:instance:test> a <urn:MyClass>.

Как только вы совершите транзакцию, Connector обновит индекс Lucene. Теперь вы можете запускать поисковые запросы, такие как:

PREFIX : <http://www.ontotext.com/connectors/lucene#>
PREFIX inst: <http://www.ontotext.com/connectors/lucene/instance#>
SELECT ?entity ?snippetField ?snippetText {
    ?search a inst:labelFR ;
            :query "label:*" ;
            :entities ?entity .
    ?entity :snippets _:s .
    _:s :snippetField ?snippetField ;
        :snippetText ?snippetText .
}

Чтобы создать собственный анализатор, следуйте инструкциям в документации и расширьте org.apache.lucene.analysis.Analyzer учебный класс. Поместите пользовательский анализатор JAR в lib/plugins/lucene-connector/ дорожка.

Другие вопросы по тегам