[Groonga-commit] groonga/gcs [master] bq: support nested group

Back to archive index

null+****@clear***** null+****@clear*****
2012年 7月 31日 (火) 15:09:05 JST


Kouhei Sutou	2012-07-31 15:09:05 +0900 (Tue, 31 Jul 2012)

  New Revision: edc66cd9ac5e5877d3b0accf2bb80a8ceea12c71
  https://github.com/groonga/gcs/commit/edc66cd9ac5e5877d3b0accf2bb80a8ceea12c71

  Log:
    bq: support nested group

  Modified files:
    lib/bq-translator.js
    test/bq-translator.test.js

  Modified: lib/bq-translator.js (+4 -0)
===================================================================
--- lib/bq-translator.js    2012-07-31 11:26:48 +0900 (835e9ac)
+++ lib/bq-translator.js    2012-07-31 15:09:05 +0900 (be9cbba)
@@ -181,6 +181,10 @@ BooleanQueryTranslator.prototype = {
     return "";
   },
   translateExpression: function(query, context) {
+    if (query[context.offset] == "(") {
+      return this.translateGroup(query, context);
+    }
+
     var startOffset = context.offset;
     var field;
     if (/^[a-z0-9]$/.test(query[context.offset])) {

  Modified: test/bq-translator.test.js (+4 -0)
===================================================================
--- test/bq-translator.test.js    2012-07-31 11:26:48 +0900 (0f1f44a)
+++ test/bq-translator.test.js    2012-07-31 15:09:05 +0900 (7191a0b)
@@ -103,6 +103,10 @@ suite('BoolanQueryTranslator', function() {
             "(field1 @ \"keyword1\" || field2 @ \"keyword2\")",
             "(or field1:'keyword1' field2:'keyword2')".length,
             "(or field1:'keyword1' field2:'keyword2') (other group)");
+  testGroup("nested",
+            "((f1 @ \"k1\" || f2 @ \"k2\") && f3 @ \"k3\")",
+            "(and (or f1:'k1' f2:'k2') f3:'k3')".length,
+            "(and (or f1:'k1' f2:'k2') f3:'k3') (other group)");
 
   testExpression("value only: stirng: keywords",
                  "field @ \"keyword1\" && field @ \"keyword2\"",
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
下载 



Groonga-commit メーリングリストの案内
Back to archive index