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... 下载