Thomas Mueller created OAK-11530:
------------------------------------

             Summary: Elasticsearch: "field name cannot be an empty string" if 
fields start with a dot
                 Key: OAK-11530
                 URL: https://issues.apache.org/jira/browse/OAK-11530
             Project: Jackrabbit Oak
          Issue Type: Improvement
          Components: elastic-search
            Reporter: Thomas Mueller
            Assignee: Thomas Mueller


If an index definition has a property that starts with a dot, then the 
Elasticsearch index creation fails. e.g.:

{noformat}
          "test": {
            "name": "./jcr:content/test",
            "propertyIndex": true,
            "jcr:primaryType": "nam:nt:unstructured"
          }


ERROR c.a.g.indexing.tool.elastic.Main - Can't perform operation
co.elastic.clients.elasticsearch._types.ElasticsearchException: 
[es/indices.create] failed: [mapper_parsing_exception] Failed to parse mapping: 
field name cannot be an empty string
    at 
co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:345)
    at 
co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:147)
    at 
co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.create(ElasticsearchIndicesClient.java:277)
    at 
org.apache.jackrabbit.oak.plugins.index.elastic.index.ElasticIndexWriter.provisionIndex(ElasticIndexWriter.java:196)
    at 
org.apache.jackrabbit.oak.plugins.index.elastic.index.ElasticIndexWriter.<init>(ElasticIndexWriter.java:88)
    at 
org.apache.jackrabbit.oak.plugins.index.elastic.index.ElasticIndexWriterFactory.newInstance(ElasticIndexWriterFactory.java:47)
    at 
org.apache.jackrabbit.oak.index.indexer.document.ElasticIndexerProvider.getIndexer(ElasticIndexerProvider.java:68)
    at 
org.apache.jackrabbit.oak.index.indexer.document.DocumentStoreIndexerBase.prepareIndexers(DocumentStoreIndexerBase.java:546)
    at 
org.apache.jackrabbit.oak.index.indexer.document.DocumentStoreIndexerBase.reindex(DocumentStoreIndexerBase.java:385)
{noformat}

There are multiple issues:
* I think for compatibility with Lucene indexes, it would be better if dots 
work here.
* The logging should include the index definition JSON.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to