[Groonga-commit] groonga/gcs [master] Add test for facetEnabled option for the search API

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Aug 22 17:31:05 JST 2012


YUKI Hiroshi	2012-08-22 17:31:05 +0900 (Wed, 22 Aug 2012)

  New Revision: 34f55304db9c3898cdff64e1af5ada8eb1d7e80a
  https://github.com/groonga/gcs/commit/34f55304db9c3898cdff64e1af5ada8eb1d7e80a

  Log:
     Add test for facetEnabled option for the search API

  Modified files:
    test/api-search.test.js

  Modified: test/api-search.test.js (+55 -3)
===================================================================
--- test/api-search.test.js    2012-08-22 17:26:03 +0900 (dc92675)
+++ test/api-search.test.js    2012-08-22 17:31:05 +0900 (97399e5)
@@ -409,11 +409,12 @@ suite('Search API', function() {
       domain = new Domain('people', context)
                  .setId('00000000000000000000000000').createSync();
       domain.getIndexField('realname').setType('text')
-        .setResultEnabled(true).createSync();
+        .setFacetEnabled(true).setResultEnabled(true).createSync();
       domain.getIndexField('nickname').setType('text')
-        .setResultEnabled(true).createSync();
+        .setFacetEnabled(true).setResultEnabled(true).createSync();
       domain.getIndexField('type').setType('literal')
-        .setSearchEnabled(true).setResultEnabled(true).createSync();
+        .setFacetEnabled(true).setSearchEnabled(true).setResultEnabled(true)
+        .createSync();
       domain.loadSync([
         { id: 'id1', realname: 'Jack Sparrow',
                      nickname: 'Captain',
@@ -571,5 +572,56 @@ suite('Search API', function() {
         assert.deepEqual(response.normalizedBody, expected);
       }
     );
+
+    testSearch('/2011-02-01/search?q=Jack&facet=realname,nickname,type',
+               'should return only "type" field as facet by facetEnabled',
+               'search-people-00000000000000000000000000.localhost',
+      function() {
+        domain.getIndexField('realname').setFacetEnabled(false).saveOptionsSync();
+        domain.getIndexField('nickname').setFacetEnabled(false).saveOptionsSync();
+      },
+      function(response) {
+        var expected = {
+          rank: '-text_relevance',
+          'match-expr': "(label 'Jack')",
+          hits: {
+            found: 2,
+            start: 0,
+            hit: [
+              {
+                id: 'id2',
+                data: {
+                  realname: ['Pumpkin Man'],
+                  nickname: ['Jack-o\'-Lantern'],
+                  type:     ['ghost']
+                }
+              },
+              {
+                id: 'id1',
+                data: {
+                  realname: ['Jack Sparrow'],
+                  nickname: ['Captain'],
+                  type:     ['human']
+                }
+              }
+            ]
+          },
+          facets: {
+            type: {
+              constraints: [
+                {value: 'ghost', count: 1},
+                {value: 'human', count: 1}
+              ]
+            }
+          },
+          info: {
+            rid: '000000000000000000000000000000000000000000000000000000000000000',
+            'time-ms': 0, // always 0
+            'cpu-time-ms': 0
+          }
+        };
+        assert.deepEqual(response.normalizedBody, expected);
+      }
+    );
   });
 });
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index