[Groonga-commit] groonga/gcs [master] Support "start" parameter for the search API

Back to archive index

null+****@clear***** null+****@clear*****
2012年 7月 6日 (金) 17:57:04 JST


SHIMODA Hiroshi	2012-07-06 17:57:04 +0900 (Fri, 06 Jul 2012)

  New Revision: 7c1c5c2d9287ea860f516856c32267d0d3d62068
  https://github.com/groonga/gcs/commit/7c1c5c2d9287ea860f516856c32267d0d3d62068

  Log:
    Support "start" parameter for the search API

  Modified files:
    lib/api/2011-02-01/search.js
    test/search.test.js

  Modified: lib/api/2011-02-01/search.js (+3 -1)
===================================================================
--- lib/api/2011-02-01/search.js    2012-07-06 17:21:17 +0900 (6652331)
+++ lib/api/2011-02-01/search.js    2012-07-06 17:57:04 +0900 (75360aa)
@@ -39,10 +39,12 @@ exports.createHandler = function(database) {
     var query = request.query.q || '';
     var matchColumns = database.columnNamesSync(domain.name).join('||');
     var size = parseInt(request.query.size || '10', 10);
+    var start = parseInt(request.query.start || '0', 10);
     var options = {
       table: domain.name,
       query: query,
       limit: size,
+      offset: start,
       match_columns: matchColumns
     };
 
@@ -76,7 +78,7 @@ exports.createHandler = function(database) {
         'match-expr': '', // FIXME
         hits: {
           found: numFoundRecords,
-          start: 0,
+          start: start,
           hit: data
         },
         info: info

  Modified: test/search.test.js (+47 -0)
===================================================================
--- test/search.test.js    2012-07-06 17:21:17 +0900 (5ac0b8e)
+++ test/search.test.js    2012-07-06 17:57:04 +0900 (dd11f71)
@@ -191,4 +191,51 @@ suite('Search API', function() {
       done();
     }
   );
+
+  testSearch('/2011-02-01/search?q=Tokyo&start=1',
+             'search-companies-00000000000000000000000000.localhost',
+    function(response, body, done) {
+      var actual = JSON.parse(body);
+      actual.info['time-ms'] = 0; // always set 0 for test
+      var expected = {
+        rank: '-text_relevance',
+        'match-expr': '',
+        hits: {
+          found: 3,
+          start: 1,
+          hit: [
+            {
+              id: 'id3',
+              data: {
+                _id: [3],
+                _key: ['id3'],
+                address: ['Hongo, Tokyo, Japan'],
+                description: [''],
+                email_address: ['info****@clear*****'],
+                name: ['ClearCode Inc.']
+              }
+            },
+            {
+              id: 'id9',
+              data: {
+                _id: [9],
+                _key: ['id9'],
+                address: ['Tokyo, Japan'],
+                description: [''],
+                email_address: [''],
+                name: ['Umbrella Corporation.']
+              }
+            }
+          ]
+        },
+        info: {
+          rid: '000000000000000000000000000000000000000000000000000000000000000',
+          'time-ms': 0, // always 0
+          'cpu-time-ms': 0
+        }
+      };
+      assert.deepEqual(actual, expected);
+      done();
+    }
+  );
 });
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Download 



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