From 33086fb98de56253797143794f9f51a3a7b33f96 Mon Sep 17 00:00:00 2001 From: kimchy Date: Sun, 4 Apr 2010 22:00:05 +0300 Subject: [PATCH] API Change: Terms - Add support for gt/gte/lt/lte, closes #108. --- .../action/terms/TermsRequest.java | 40 ++++++++++++++++++- .../rest/action/terms/RestTermsAction.java | 20 ++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/action/terms/TermsRequest.java b/modules/elasticsearch/src/main/java/org/elasticsearch/action/terms/TermsRequest.java index 98dc697f716..e09a69ae2d3 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/action/terms/TermsRequest.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/action/terms/TermsRequest.java @@ -168,7 +168,7 @@ public class TermsRequest extends BroadcastOperationRequest { } /** - * The lower bound (lex) term from which the iteration will start. Defaults to start from the + * The lower bound term from which the iteration will start. Defaults to start from the * first. */ public String from() { @@ -176,7 +176,7 @@ public class TermsRequest extends BroadcastOperationRequest { } /** - * The lower bound (lex) term from which the iteration will start. Defaults to start from the + * The lower bound term from which the iteration will start. Defaults to start from the * first. */ public TermsRequest from(Object from) { @@ -188,6 +188,42 @@ public class TermsRequest extends BroadcastOperationRequest { return this; } + /** + * Greater than (like setting from with fromIInclusive set to false). + */ + public TermsRequest gt(Object from) { + from(from); + fromInclusive(false); + return this; + } + + /** + * Greater/equal than (like setting from with fromInclusive set to true). + */ + public TermsRequest gte(Object from) { + from(from); + fromInclusive(true); + return this; + } + + /** + * Lower then (like setting to with toInclusive set to false) + */ + public TermsRequest lt(Object to) { + to(to); + toInclusive(false); + return this; + } + + /** + * Lower/equal then (like setting to with toInclusive set to false) + */ + public TermsRequest lte(Object to) { + to(to); + toInclusive(true); + return this; + } + /** * Should the first from (if set using {@link #from(Object)} be inclusive or not. Defaults * to false (not inclusive / exclusive). diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/terms/RestTermsAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/terms/RestTermsAction.java index 0e771b8cac2..4d5297670a1 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/terms/RestTermsAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/terms/RestTermsAction.java @@ -90,6 +90,26 @@ public class RestTermsAction extends BaseRestHandler { termsRequest.to(request.param("to")); termsRequest.fromInclusive(request.paramAsBoolean("from_inclusive", termsRequest.fromInclusive())); termsRequest.toInclusive(request.paramAsBoolean("to_inclusive", termsRequest.toInclusive())); + + Object temp = request.param("gt"); + if (temp != null) { + termsRequest.gt(temp); + } else { + temp = request.param("gte"); + if (temp != null) { + termsRequest.gte(temp); + } + } + temp = request.param("lt"); + if (temp != null) { + termsRequest.lt(temp); + } else { + temp = request.param("lte"); + if (temp != null) { + termsRequest.lte(temp); + } + } + termsRequest.exact(request.paramAsBoolean("exact", termsRequest.exact())); termsRequest.minFreq(request.paramAsInt("min_freq", termsRequest.minFreq())); termsRequest.maxFreq(request.paramAsInt("max_freq", termsRequest.maxFreq()));