我试图在各种发行版本中测试Cassandra数据库的stratio lucene索引,并且在过去的2.2版本时遇到问题:
假设我有一个列mymap
的表格,其类型为map<text, text>
,我使用lucene索引将其编入索引:
CREATE CUSTOM INDEX myindex
ON mytable (lucene_index)
USING 'com.stratio.cassandra.lucene.Index'
WITH OPTIONS = {
'refresh_seconds': '10',
'schema' : '{
fields : {
mymap: {
type: "string",
sorted: true
}
}
}'
};
直到2.1版本的cassandra - lucene套件我才能有一个工作选择查询,其中涉及lucene索引排序:
select * from mytable
where lucene_index = '{
sort: {
fields: [{field:"mymap.attr"}]
},
refresh: true
}';
该查询将获取按attr1
列的mymap
地图值排序的结果,前提是该列具有该特定地图属性的行。
当超过2.2版时,查询,过滤器或排序的所有element.property
语法都更改为element$property
,但是如果我在选择查询中进行更改,则排序无法正常工作,我甚至可以在列中引用不存在的字段。