-
Notifications
You must be signed in to change notification settings - Fork 25.2k
geo_shapes stopped indexing in 6.4.1 #34047
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Thanks for reporting.
Yes, that would help if you could provide an example of a shape that is correctly indexed in 6.3.2 and failed to be indexed in 6.4.1. We'll need the mappings too. |
Pinging @elastic/es-search-aggs |
Which ones? I provided the ones for the affected field, do you need any other? |
@Destroy666x Thanks! If you can provide a full example with all the document fields mappings that's great. If you can reproduce with one field only then we only need the field mapping :) |
Question @tlrx - is there an easy way to check the bulk request the library does in some sort of Elastic logs? Because the library logger for some reason skips it, even if I simplify the request quite a lot. Maybe these details will help in the meanwhile:
where |
@Destroy666x I tried to reproduce what you described based on the information that you have provided on 6.3.1 and 6.4.1 and got quite an opposite result. The following script https://gist.github.com/imotov/64dcfc84829141d54d4a244573902449 that uses both |
Well, you didn't reverse the order of vertices and lat/lon and didn't do it as a |
@imotov I tried your
format. Which on the other hand throws So I guess the Symfony library or Elastica for some reason ignores the setting. But if that's the case why is the setting suddenly required (BC break still) and what's wrong with the shape (the reverse lat/lon and vertices one that is)? The problem still exists in 6.4.2 BTW. |
Here's the shape with proper default Elasticsearch order: https://pastebin.com/c8xHeXx0 And here's a screen from 6.3.2 with the exact request https://pastebin.com/N0JFt4u2 and no |
The setting is only applied on the server side and not on the client side. So, I think the shape that your client app is sending is not what you think/reported it is sending. Perhaps, you can sniff the network traffic to see what is actually getting sent and try to reproduce it using Kibana. That would really help, because at the moment I am not actually sure what the issue is and I still cannot reproduce it. |
Yes, but you can configure the index mappings that are sent to the server.
Did you try the
Ok, I'll try that when I'll find more time. |
@Destroy666x the 2nd link from where and with which mapping? Could you post a complete reproduction similar to what I posted in https://gist.github.com/imotov/64dcfc84829141d54d4a244573902449 ? |
From this comment: #34047 (comment) The rest of your gist is pretty much the same, apart from different index, type name and no |
Thanks! I can reproduce it now. It looks like another case similar to #31428. A smaller reproduction:
|
Continuation of the work in elastic#31449. Ensures that malformed geoshapes are reliably ignored if "ignore_malformed" is set to true instead of failing the entire document by making sure that xcontent parse is left in a coherent state even if a data format parsing error occurred. Fixes elastic#34047
Adds a method to XContent parser to skip all children of a current element in case of the parsing failure and applies this method to be able to ignore the rest of the GeoJson shape if the parsing fails and we need to ignore the geoshape due to the ignore malformed flag. Supersedes elastic#34498 Closes elastic#34047
…5603) Adds an XContent sub parser class that can to wrap another XContent parser at the beginning of an object and allow skiping all children in case of the parsing failure. It also uses this subparser to ignore the rest of the GeoJson shape if the parsing fails and we need to ignore the geoshape due to the ignore_malformed flag. Supersedes #34498 Closes #34047
…5603) Adds an XContent sub parser class that can to wrap another XContent parser at the beginning of an object and allow skiping all children in case of the parsing failure. It also uses this subparser to ignore the rest of the GeoJson shape if the parsing fails and we need to ignore the geoshape due to the ignore_malformed flag. Supersedes #34498 Closes #34047
Just for reference, I solved my issue by using this solution
|
Uh oh!
There was an error while loading. Please reload this page.
Elasticsearch version (
bin/elasticsearch --version
): 6.4.1Plugins installed: []
JVM version (
java -version
): official Docker imageOS version (
uname -a
if on a Unix-like system): official Docker imageDescription of the problem including expected versus actual behavior:
After upgrading from 6.3.2 to 6.4.1, many
geo_shape
s stopped importing.Steps to reproduce:
caused failed to parse
error.ignore_malformed: true
doesn't seem to help.It looks like there was some sort of undocumented BC break regardless of the shapes being fully proper. If you want I can provide you an example of a shape.
The text was updated successfully, but these errors were encountered: