I keep getting the following exception while creating index using API. This does not happen in all cases.
{"message":"Elasticsearch exception: MapperParsingException[Failed to parse mapping [records]: name cannot be empty string]; nested: IllegalArgumentException[name cannot be empty string]
Its a large index with over 200 fields and is created using API. I am wondering how do I know what exactly is the issue. Could someone throw some light?
Replying on my own thread. It looks like there is a period "." in the fieldName. I tried it manually and found out that adding period at the end of the fieldname works (e.g. "myfield..."), however if there is any character after period (e.g. "myfield.x"), then it fails with the above error.
Interestingly, the error message from ES and API are different, which made it hard to debug. I had to look into ES code. I guess period makes it confusing for ES to differentiate nested and other types.
Is there any official documentation that mentions the list of illegal characters in ES? This post specifies that ".", "#" & "*" are illegal characters.
I think dots can be used, but there are some caveats or some complexities to be aware of, but if they can be avoided then it could make things a lot easier.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.