Open maggienj opened 7 years ago
we have added a new datatype "keyword" to a list of available datatypes. It appears that "keyword" datatype is impacting this "double" and/or may be explicit conversion is required somewhere.... not sure..
ERROR: can not load [{"v": 1}, {"v": "2"}, {"v": 3}, {"v": "4"}, {}] into container ...so it looks like it is happening while it is creating the index in ES. So, may be, check where it is creating the index...
This is the biggest change we must deal with when moving to ESv5+: ES demands each property has only one datatype! This is just like a database column, and we must work around it.
The plan is to rename every single property, appending the datatype. There is a GSOC student working on this problem right now, rohit in #π for the sqlite database!
Here is a description of the renaming plan: https://github.com/mozilla/jx-sqlite#overloading-property-types There is lots in that document that does not pertain to ES, but I hope you get the idea: Alter elasitcsearch.py so that it adds property name suffixes like .$string
, .$number
, .$keyword
. Of course, changing the way a document is stored will force us to change every query we send to the cluster.
The TestSchemaMerging
suite is responsible for testing that a diversity of data can be put into ES. You may also notice some @skipIf(global_settings.use == "elasticsearch"
lines that are waiting for this change to happen.
Leave this problem until you have nothing else to work on.
elasticsearch.py
does have a tjson
variable (aka "typed json"), which is used to implement a primitive form of property suffixing, which only works on ES1.7. Feel free to reuse that variable (and the code paths) to implement this more sophisticated form.
Please rename this bug to "Fix TestSetOps.test_number"
renamed.
Unit Test Name: tests.test_jx.test_expressions_w_set_ops.TestSetOps.test_number
New Err: caused by ERROR: 400 { "reason": "mapper [v] of different type, current_type [double], merged_type [keyword]", "type": "illegal_argument_exception" } (and 0 others) while loading line id=2BD4CF04A425EAB5CDB20262461B4492A8A0B2DB into index "testing_093_h20170605_132725": {"v": "2"}
Full Err StackTrace is shown here..