Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 每个搜索有多个筛选器cassandra lucene索引_Java_Cassandra_Stratio_Cassandra Lucene Index - Fatal编程技术网

Java 每个搜索有多个筛选器cassandra lucene索引

Java 每个搜索有多个筛选器cassandra lucene索引,java,cassandra,stratio,cassandra-lucene-index,Java,Cassandra,Stratio,Cassandra Lucene Index,有没有一种方法可以使用多个过滤器(使用构建器)进行cassandra lucene索引搜索 下面是我正在做的一个例子: // Age Filter conditionsToFilter.add(range("age") .lower(indexFormatDate(preferences.getAgeMax())) .upper(indexFormatDate(preferences.getAgeMin())) .includeLower(true) .i

有没有一种方法可以使用多个过滤器(使用构建器)进行cassandra lucene索引搜索

下面是我正在做的一个例子:

    // Age Filter
conditionsToFilter.add(range("age")
    .lower(indexFormatDate(preferences.getAgeMax()))
    .upper(indexFormatDate(preferences.getAgeMin()))
    .includeLower(true)
    .includeUpper(true)
    .docValues(DOC_VALUES));

// Height Filter
conditionsToFilter.add(range("height")
    .lower(preferences.getHeightMin())
    .upper(preferences.getHeightMax())
    .includeLower(true)
    .includeUpper(true)
    .docValues(DOC_VALUES));

// Distance Filter
conditionsToFilter.add(geoDistance("location",
    preferences.getCurrentUserLocation().getLongitude(),
    preferences.getCurrentUserLocation().getLatitude(),
    String.format("%dmi", preferences.getDistanceMax())));


// Apply Filters
Search searchObj = com.stratio.cassandra.lucene.builder.Builder.search();
for (Condition condition : conditionsToFilter) {
  searchObj.filter(condition); <-- this definitely won't work
}

// Create Search String
String query = searchObj
    .refresh(false)
    .build();
//年龄过滤器
conditionsToFilter.add(范围(“年龄”)
.lower(indexformattate(preferences.getAgeMax()))
.upper(indexFormatDate(preferences.getAgeMin()))
.includeLower(正确)
.includeUpper(正确)
.docValues(DOC_值));
//高度过滤器
conditionsToFilter.add(范围(“高度”)
.lower(首选项.getHeightMin())
.upper(首选项.getHeightMax())
.includeLower(正确)
.includeUpper(正确)
.docValues(DOC_值));
//距离滤波器
conditionsToFilter.add(地理距离(“位置”),
preferences.getCurrentUserLocation().Get经度(),
preferences.getCurrentUserLocation().getLatitude(),
format(“%dmi”,preferences.getDistanceMax());
//应用过滤器
SearchSearchObj=com.stratio.cassandra.lucene.builder.builder.Search();
for(条件条件:conditionsToFilter){
searchObj.filter(条件);您应该使用

替换此项:

// Apply Filters
Search searchObj = com.stratio.cassandra.lucene.builder.Builder.search();
for (Condition condition : conditionsToFilter) {
    searchObj.filter(condition); <-- this definitely won't work
}
s能够执行简单的布尔表达式,包括与必须()一起执行,或与应()一起执行,或与不()一起执行

该特性增加了嵌套的能力,您可以构建几乎所有可能的布尔表达式。 即:

翻译为:

bool().should(bool().must(A,B,C),bool().must(D,bool().not(E)))
((A && B && C) || (D && !E))
bool().should(bool().must(A,B,C),bool().must(D,bool().not(E)))