2017-04-24 40 views
0

我正在使用'search()'准备lucene搜索条件。我使用的包含如下:Cassandra的Stratio Lucene:'contains'搜索返回'[[''

Search searchCondition = search().filter(match("customer_id", customerId)) 
    .filter(range("some_timestamp").lower(minTimestamp.toString()).upper(maxTimestamp.toString())) 
    .filter(contains("types", getListOfTypes())) 
    .sort(field("some_timestamp").reverse(false)); 

getListOfTypes()返回一个List。

但是,当我搜索()建(),然后下面是我得到的查询:

{ 
    "filter":[ 
{"type":"match","field":"customer_id","value":1}, 
{"type":"range","field":"some_timestamp","lower":"2017-03-20 03:23:00.0","upper":"2017-03-30 03:23:00.0"}, 
{"type":"contains","field":"types","values":[["ABC over 90%","PQR","XYZ"]]} 
], 
"sort":[{"type":"simple","field":"some_timestamp","reverse":false}] 
} 

的这里的问题是 '[' 和 ']'。这不会导致任何行被返回。 我暂时用单个方括号替换它们。

但是,这是什么解决方案。

回答

0

我解决它通过使用java8:

getListOfTypes().stream().toArray()