我正在查询一个Geomesa功能,其中包括两个属性上的join
索引(r
和di
(。查询r=<int-value>
运行并返回数据以确定的r
值(如果有(。但是,查询di=<int-value>
尽管存在相同的记录,但找不到任何匹配记录!
这是我的功能模式:
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'
我无法找出根本原因。我不能在一个模式中有一个以上的属性索引吗?
更新1
附加查询计划
[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
我通过在Maven Shade插件中添加缺失的变压器来选择各种运行时实现,从而解决了此问题。
<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>