|
@@ -17,6 +17,9 @@ package org.codelibs.fess.entity;
|
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
|
+import org.codelibs.core.lang.StringUtil;
|
|
|
+import org.elasticsearch.search.aggregations.BucketOrder;
|
|
|
+
|
|
|
public class FacetInfo {
|
|
|
public String[] field;
|
|
|
|
|
@@ -30,6 +33,26 @@ public class FacetInfo {
|
|
|
|
|
|
public String missing;
|
|
|
|
|
|
+ public BucketOrder getBucketOrder() {
|
|
|
+ if (StringUtil.isNotBlank(sort)) {
|
|
|
+ final String[] values = sort.split("\\.");
|
|
|
+ final boolean asc;
|
|
|
+ if (values.length > 1) {
|
|
|
+ asc = !values[1].equalsIgnoreCase("desc");
|
|
|
+ } else {
|
|
|
+ asc = true;
|
|
|
+ }
|
|
|
+ if (values.length > 0) {
|
|
|
+ if ("term".equals(values[0]) || "key".equals(values[0])) {
|
|
|
+ return BucketOrder.key(asc);
|
|
|
+ } else if ("count".equals(values[0])) {
|
|
|
+ return BucketOrder.count(asc);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return BucketOrder.count(false);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public String toString() {
|
|
|
return "FacetInfo [field=" + Arrays.toString(field) + ", query=" + Arrays.toString(query) + ", size=" + size + ", minDocCount="
|