Thank you so much ,Andrei ,your perspective inspired me. There is no test.test in test index. I changed another table which has multi-type, it works!
BUT, also, I hava one another question: why elasticsearch-adapter do not support querying "default" type(eg. test.default) ? At 2019-04-03 10:32:55, "Andrei Sereda" <[email protected]> wrote: >You define your default schema as "elasticsearch" but then elastic schema >is called "test" : > >, "schemas": [ { "type": "custom", "name": "test" ..., index:"test" }] > >Also if you don't explicitly specify ES type all types for index "test" >will be imported. So it is possible that there is no test.test type. > >On Tue, Apr 2, 2019 at 11:18 PM Maria <[email protected]> wrote: > >> >> >> And, if the name is not correct, creating ElasticsearchSchema will be >> failed. The program will not performs "ResultSet result = >> ss.excuteQuery(sql);" >> >> At 2019-04-03 09:47:02, "Andrei Sereda" <[email protected]> wrote: >> >Can you check that it's not because of lex ? >> >What if you quote table name "test" ? Maybe uppercase ? >> > >> >On Tue, Apr 2, 2019, 22:42 Maria <[email protected]> wrote: >> > >> >> Firstly,thanks for your reply. >> >> But I'm sure that my local elasticsearch-model.json has been loaded >> >> correctly,because when getting connect,read the elastic info from that >> >> file. >> >> I will debug the test-demo again...Search for the cause of the problem. >> >> >> >> >> >> Best wishes. >> >> >> >> >> >> Maria. >> >> At 2019-04-02 19:54:24, "Yuzhao Chen" <[email protected]> wrote: >> >> >For Object 'test' not found it means Calcite does not load your son >> model >> >> correctly, so it can not find then validate the table there. Maybe you >> >> model file is not load correctly. >> >> > >> >> >I saw a demo in Calcite code in [1], the path sep is </> while your sep >> >> is <\\>, can you have a try ? >> >> > >> >> >[1] >> >> >> https://github.com/apache/calcite/blob/a75a689eff2f1333adc8fb800bdfa077e94da562/core/src/test/java/org/apache/calcite/test/LatticeTest.java#L914 >> >> > >> >> >Best, >> >> >Danny Chan >> >> >在 2019年4月2日 +0800 PM8:33,Maria <[email protected]>,写道: >> >> >> Hi, calcite developers. I met a question about es-adapter and still >> >> cannot resove it: . >> >> >> >> >> >> >> >> >> 1) calcite version :1.18.0 >> >> >> 2) ES version : 5.4.1(I know that in calcite-1.18.0 is 6.4.2) >> >> >> 3) test sql : select count(*) from test >> >> >> 4) elasticsearch-model.json as follow: >> >> >> { >> >> >> "version": "1.0","defaultSchema": "elasticsearch", "schemas": [ { >> >> "type": "custom", "name": "test", "factory": >> >> "org.apache.calcite.adapter.elasticsearch.ElasticsearchSchemaFactory", >> >> "operand": { >> >> >> "coordinates": "{'xx.xx.xx.xx': 9205}", >> >> >> "userConfig": "{'bulk.flush.max.actions': 10, >> 'bulk.flush.max.size.mb': >> >> 1}", >> >> >> "index": "test" } } ] } >> >> >> 5) test-code: >> >> >> try { >> >> >> Class.forName("org.apache.calcite.jdbc.Driver"); >> >> >> } catch (ClassNotFoundException e) { >> >> >> Throw new RuntimeException(e); >> >> >> } >> >> >> Properties pp = new Properties(); >> >> >> pp.put("lex", "JAVA"); >> >> >> Connection conn = null; >> >> >> try { >> >> >> conn = >> >> >> DriverManager.getConnection("jdbc:calcite:model=D:\\calcite\\pre-git\\calcite-test\\conf\\elasticsearch-model.json", >> >> pp); >> >> >> Statement ss = conn.createStatement(); >> >> >> String sql = "select count(*) from test"; >> >> >> ResultSet result = ss.escuteQuery(sql); >> >> >> output(resultSet, System.out); >> >> >> } catch() { >> >> >> Throw new RuntimeException("======get data failed" , e); >> >> >> } >> >> >> >> >> >> >> >> >> 6) excaptions : >> >> >> org.apache.calcite.sql.validate.SqlValidatorException:Object 'test' >> not >> >> found >> >> >> Exception in thread "main" java.lang.RuntimeException: ======get data >> >> failed >> >> >> ......... >> >> >> caused by:org.apache.calcite.runtime.CalciteContestException: From >> line >> >> 1, column 22 to line 1, column 25: Object 'test' not found<4 internal >> calls> >> >> >> at >> >> >> org.apache.calcite.runtime.Resources$ExInstWithCause.ex(Resources.java:463) >> >> >> at >> org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:787) >> >> >> at >> org.apache.calcite.sql.SqlUtil.newContextException(SqlUtil.java:772) >> >> >> at >> >> >> org.apache.calcite.sql.validate.SqlValidatorImpl.newValidationError(SqlValidatorImpl.java:4788) >> >> >> at >> >> >> org.apache.calcite.sql.validate.IdentifierNamespace.resolveImpl(IdentifierNamespace.java:172) >> >> >> ......... >> >> >> 7) other confusions: >> >> >> [1] I know that in elasticsearch apdator, test case is done by >> >> EmbeddedElasticsearch, why not add one standard JDBC test case? >> >> >> [2] model.json in >> >> http://calcite.apache.org/docs/elasticsearch_adapter.html need to be >> >> update,should add "userConfig", or else will be failed. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> any reply will be appreciated >> >> >> >> >> >> >> >> >> Maria. >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
