Коннектор GraphDB Elasticsearch

Есть ли рабочий пример для сопоставления свойств lat long из graphdb с объектами geo_point при эластичном поиске?

{
              "fieldName": "location",
              "propertyChain": [
                "http://example.com/coordinates"
              ],
              "objectFields": [
                {
                  "fieldName": "lat",
                  "propertyChain": [
                    "http://www.w3.org/2003/01/geo/wgs84_pos#lat"
                  ]
                },
                {
                  "fieldName": "lon",
                  "propertyChain": [
                    "http://www.w3.org/2003/01/geo/wgs84_pos#long"
                  ]
                }
              ]
            }

Благодарность


person Evangelos    schedule 27.06.2017    source источник


Ответы (1)


Единственный способ проиндексировать данные как geo_point с текущей версией GraphDB и коннектором Elasticsearch - указать широту и долготу в одном литерале, например со свойством http://www.w3.org/2003/01/geo/wgs84_pos#lat_long. Разъем будет выглядеть так:

PREFIX : <http://www.ontotext.com/connectors/elasticsearch#>
PREFIX inst: <http://www.ontotext.com/connectors/elasticsearch/instance#>
INSERT DATA {
  inst:geopoint :createConnector '''
    {
      "elasticsearchNode": "localhost:9300",
      "types": ["http://geopoint.ontotext.com/Point"],
      "fields": [
        {
          "fieldName": "location",
          "propertyChain": [
            "http://www.w3.org/2003/01/geo/wgs84_pos#lat_long"
          ],
          "datatype": "native:geo_point"
        }
      ],
    }
  ''' .
}

Обратите внимание, что тип данных: "native: geo_point" важен, поскольку он сообщает Elasticsearch, какой это тип данных.

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

person Pavel Mihaylov    schedule 12.07.2017