Cassandra 的 Stratio Lucene:'contains' 搜索 returns '[['
Stratio Lucene for Cassandra : 'contains' search returns '[['
我正在使用 'search()' 准备 lucene 搜索条件。我在这里使用包含:
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() returns 一个列表。
但是当我 search().build() 时,下面是我得到的查询:
{
"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}]
}
这里的问题是“[[”和“]]”。这不会导致返回任何行。
我暂时用单个方括号替换它们。
但是解决这个问题的方法是什么。
我用java8解决了这个问题:
getListOfTypes().stream().toArray()
我正在使用 'search()' 准备 lucene 搜索条件。我在这里使用包含:
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() returns 一个列表。
但是当我 search().build() 时,下面是我得到的查询:
{
"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}]
}
这里的问题是“[[”和“]]”。这不会导致返回任何行。 我暂时用单个方括号替换它们。
但是解决这个问题的方法是什么。
我用java8解决了这个问题:
getListOfTypes().stream().toArray()