Datastax的以下documentation page声明:
DSE Search maps collections as follows:
Collection list and set: multi-valued field
Collection maps: dynamic field
The name of the dynamic field minus the wildcard is the map name. For example, a map column name dyna* is mapped to dyna. Inner keys are mapped to the full field name.
最后一句话对我来说不是很清楚。字段定义究竟应该是什么样的?假设我在CQL3中有一个定义为scores map<int,int>
的集合映射,以下字段定义是否正确?
<field name="scores*" type="int" indexed="true" stored="true"/>
我如何查询?假设地图的值为{201409 : 89, 201410 : 67}
并且我想在内部字段&#39; 201410&#39;上进行过滤,则以下是否正确?:
fq=scores201410:[80 TO *]
答案 0 :(得分:1)
动态字段的名称减去通配符是地图名称意味着以下动态字段对应于CQL中的以下地图名称:
动态字段:<dynamicField name="lang_*" . . . >
地图名称:CREATE TABLE hits ( . . .lang_ map<text, text>, . . .);
在您的示例中,动态字段名称=得分_ *。
查询取决于您在字段中插入的值。如果将这些值插入CQL score_列:
{ 'scores_100' : '5000'}
{ 'scores_200' : '10000'}
{ 'scores_100' : '300'}
然后,我认为获得集合中所有得分_100的查询将是:
的http://:8983 / solr的/ mykeyspace.myscores /选择Q = scores_100%3A *&安培;重量= XML&安培;缩进=真