mavenaccumulogeomesa

Unable to query with two attribute indexes in geomesa feature type


I am querying a geomesa feature which includes join index on two attributes(r and di). Query r=<int-value> runs and returns data for specified r value if any. However Query di=<int-value> doesn't finds any matching records though records for the same exists!

Here is my feature schema:

r:Long:cardinality=high:index=join,*g:Point:srid=4326,di:Integer:index=join,al:Float,s:Float,b:Float,an:Float,he:Float,ve:Float,t:Float,m:Boolean,i:Boolean,ts:Long;geomesa.table.sharing='true',geomesa.indices='attr:4:3,records:2:3,z2:3:3',geomesa.table.sharing.prefix='\\u0001'

I am not able to find out the root cause. Can't i have more than one attribute index in one schema?

UPDATE 1

Attaching Query Plan

[2017-05-01 18:51:53,219] TRACE Explainer: Planning 'aj_dev' di = 1
239099 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  - Planning 'aj_dev' di = 1
[2017-05-01 18:51:53,220] TRACE Explainer:   Original filter: di = 1
239100 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Original filter: di = 1
[2017-05-01 18:51:53,220] TRACE Explainer:   Hints: density[false] bin[false] stats[false] map-aggregate[false] sampling[none]
239100 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Hints: density[false] bin[false] stats[false] map-aggregate[false] sampling[none]
[2017-05-01 18:51:53,221] TRACE Explainer:   Sort: none
239101 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Sort: none
[2017-05-01 18:51:53,221] TRACE Explainer:   Transforms: None
239101 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Transforms: None
[2017-05-01 18:51:53,221] TRACE Explainer:   Strategy selection:
239101 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Strategy selection:
[2017-05-01 18:51:53,226] TRACE Explainer:     Query processing took 3ms and produced 1 options
239106 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -     Query processing took 3ms and produced 1 options
[2017-05-01 18:51:53,226] TRACE Explainer:     Filter plan: FilterPlan[AttributeIndex[di = 1][None]]
239106 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -     Filter plan: FilterPlan[AttributeIndex[di = 1][None]]
[2017-05-01 18:51:53,226] TRACE Explainer:     Strategy selection took 0ms for 1 options
239106 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -     Strategy selection took 0ms for 1 options
[2017-05-01 18:51:53,226] TRACE Explainer:   Strategy 1 of 1: AttributeIndex
239106 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Strategy 1 of 1: AttributeIndex
[2017-05-01 18:51:53,226] TRACE Explainer:     Strategy filter: AttributeIndex[di = 1][None]
239106 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -     Strategy filter: AttributeIndex[di = 1][None]
[2017-05-01 18:51:53,227] TRACE Explainer:     Plan: org.locationtech.geomesa.accumulo.index.EmptyPlan
239107 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -     Plan: org.locationtech.geomesa.accumulo.index.EmptyPlan
[2017-05-01 18:51:53,227] TRACE Explainer:       Table: 
239107 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -       Table: 
[2017-05-01 18:51:53,227] TRACE Explainer:       Deduplicate: false
239107 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -       Deduplicate: false
[2017-05-01 18:51:53,227] TRACE Explainer:       Column Families: all
239107 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -       Column Families: all
[2017-05-01 18:51:53,228] TRACE Explainer:       Ranges (0): 
239108 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -       Ranges (0): 
[2017-05-01 18:51:53,228] TRACE Explainer:       Iterators (0):
239108 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -       Iterators (0):
[2017-05-01 18:51:53,228] TRACE Explainer:     Plan creation took 1ms
239108 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -     Plan creation took 1ms
[2017-05-01 18:51:53,228] TRACE Explainer:   Query planning took 17ms
239108 [Thread-5] TRACE org.locationtech.geomesa.index.utils.Explainer  -   Query planning took 17ms

Solution

  • I solved this by adding missing transformers in maven shade plugin to pick various runtime implementation like below

    <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-shade-plugin</artifactId>
       <version>3.0.0</version>
       <executions>
          <execution>
             <phase>package</phase>
             <goals>
                <goal>shade</goal>
             </goals>
             <configuration>
                <!-- <minimizeJar>true</minimizeJar> -->
                <createDependencyReducedPom>false</createDependencyReducedPom>
                <filters>
                   <filter>
                      <artifact>*:*</artifact>
                      <excludes>
                         <exclude>META-INF/*.SF</exclude>
                         <exclude>META-INF/*.DSA</exclude>
                         <exclude>META-INF/*.RSA</exclude>
                      </excludes>
                   </filter>
                </filters>
                <transformers>
                   <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                </transformers>
             </configuration>
          </execution>
       </executions>
    </plugin>