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" <and...@sereda.cc> 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 <linanmengxia...@126.com> 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" <and...@sereda.cc> 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 <linanmengxia...@126.com> 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" <yuzhao....@gmail.com> 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 <linanmengxia...@126.com>,写道:
>> >> >> 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.
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >>
>>

Reply via email to