ElasticGeo provides a GeoTools data store that allows geospatial features from an Elasticsearch index to be published via OGC services using GeoServer.
GNU General Public License v3.0
169
stars
85
forks
source link
Index mapping with field not indexed results in java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String #33
Create and post a mapping for an Elasticsearch index. The mapping needs to include a field that is not indexed.
"field_name" : {
"index" : false
}
In geoserver, create a store for the index. Use the REST interface (port 9200). After the store is created, try to publish the layer.
Geoserver fails with the following error
Caused by: java.lang.ClassCastException: java.lang.Boolean cannot be cast to java.lang.String
at mil.nga.giat.data.elasticsearch.ElasticCompat5.isAnalyzed(ElasticCompat5.java:88)
at mil.nga.giat.data.elasticsearch.ElasticDataStore.add(ElasticDataStore.java:340)
at mil.nga.giat.data.elasticsearch.ElasticDataStore.walk(ElasticDataStore.java:313)
at mil.nga.giat.data.elasticsearch.ElasticDataStore.walk(ElasticDataStore.java:310)
at mil.nga.giat.data.elasticsearch.ElasticDataStore.getElasticAttributes(ElasticDataStore.java:150)
at mil.nga.giat.data.elasticsearch.ElasticFeatureSource.<init>(ElasticFeatureSource.java:48)
at mil.nga.giat.data.elasticsearch.ElasticDataStore.createFeatureSource(ElasticDataStore.java:111)
at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:395)
at mil.nga.giat.data.elasticsearch.ElasticDataStore.getFeatureSource(ElasticDataStore.java:122)
at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:686)
at org.geotools.data.store.ContentDataStore.getFeatureSource(ContentDataStore.java:103)
at org.geoserver.catalog.CatalogBuilder.buildFeatureType(CatalogBuilder.java:333)
at org.geoserver.web.data.layer.NewLayerPage.buildLayerInfo(NewLayerPage.java:359)
... 121 more
I looks like Elasticsearch 5.x changed the value of index from a String (that used to be analyzed, not_analyzed, and no) to just a Boolean.
Steps to reproduce
Geoserver fails with the following error
I looks like Elasticsearch 5.x changed the value of
index
from a String (that used to beanalyzed
,not_analyzed
, andno
) to just a Boolean.