Elasticsearch GraphDB Connector

Version 1 by Pavel Mihaylov
on Jun 26, 2015 14:32.

compared with
Current by Pavel Mihaylov
on Jul 02, 2015 17:56.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (6)

View Page History
* custom mapping of RDF types to Elasticsearch types;

Each feature is described in detail below.

h1. Usage


h3. Third-party component versions

This version of the Elasticsearch GraphDB Connector uses Elasticsearch version 1.6.0.

h2. Creating a connector instance

inst:my_index :createConnector '''
{
"elasticsearchNode": "localhost:92300",
"types": [
"http://www.ontotext.com/example/wine#Wine"
As Elasticsearch is a third-party service, you have to specify the node where it is running. The format of the node value is of the form *hostname.domain:port*. There is no default value.

{note}
Note that Elasticsearch exposes two protocols, the native _transport_ protocol over port _9300_ and the _RESTful_ API over port _9200_. The Elasticsearch GraphDB Connector uses the transport protocol over port 9300.
{note}

h3. elasticsearchCluster (string), optional, Elasticsearch cluster name

This option sets the cluster name that the connector instance will connect to.

Every Elasticsearch instance uses a unique cluster name to identify, discover and join other nodes. By default this is "elasticsearch" but it is advisable to change it. Please, see [Configuration: Cluster name|https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html#cluster-name] in the Elasticsearch documentation.


h3. indexCreateSettings (string), optional, settings for creating the Elasticsearch index

The mapping can be overridden through the property "datatype", which can be specified per field. The value of "datatype" can be any of the xsd: types supported by the automatic mapping or a native Elasticsearch type prefixed by native:, e.g., both xsd:long and native:long map to the long type in Elasticsearch.


h4. analyzer (string), optional, per field analyser

The Elasticsearch analyser that is used for indexing the field can be specified with the parameter "analyzer". It will be passed directly to Elasticsearch's property "analyzer" when creating the mapping. Please, refer to [Custom Analyzers|https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-analyzers.html#custom-analyzers] in the Elasticsearch documentation. For example:

{div:style=width: 70em}{noformat}
{
...
"fields": [
{
"fieldName": "grape",
"propertyChain": [
"http://www.ontotext.com/example/wine#madeFromGrape",
"http://www.w3.org/2000/01/rdf-schema#label"
],
"analyzer": "my_analyzer",
},
...
}
{noformat}


h3. Copy fields

| _sort_firstName | produced, if the option "sort" was true; used implicitly for ordering connector results |

The current version always produces a single Elasticsearch field per field definition in the configuration. This means that you have to create all appropriate fields based on your needs. See more under [#Creation [#List of creation parameters].

{tip}