[Groonga-commit] groonga/gcs [master] Don't expose internal columns to the search result

Back to archive index

YUKI Hiroshi null+****@clear*****
Wed Aug 22 16:36:47 JST 2012


YUKI Hiroshi	2012-08-22 16:36:47 +0900 (Wed, 22 Aug 2012)

  New Revision: 31c95d9b8f55cfc13c6b02491c74802c59691966
  https://github.com/groonga/gcs/commit/31c95d9b8f55cfc13c6b02491c74802c59691966

  Log:
    Don't expose internal columns to the search result

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

  Modified: lib/api/2011-02-01/search.js (+9 -1)
===================================================================
--- lib/api/2011-02-01/search.js    2012-08-22 16:01:12 +0900 (f29b0c2)
+++ lib/api/2011-02-01/search.js    2012-08-22 16:36:47 +0900 (1ec1841)
@@ -39,7 +39,15 @@ function formatSelectResults(data) {
   var records = data[0].slice(2);
   var results = records.map(function(record) {
     var object = {};
+    var id;
     columnNames.forEach(function(columnName, index) {
+      // bind internal "_key" column to the "id"
+      if (columnName == '_key') {
+        id = record[index];
+        return;
+      }
+      // don't expose any internal column
+      if (columnName[0] == '_') return;
       if (Array.isArray(record[index])) {
         // vector column
         object[columnName] = record[index];
@@ -49,7 +57,7 @@ function formatSelectResults(data) {
       }
     });
     return {
-      id: object._key[0],
+      id:   id,
       data: object
     };
   });

  Modified: test/api-search.test.js (+0 -36)
===================================================================
--- test/api-search.test.js    2012-08-22 16:01:12 +0900 (0a000a9)
+++ test/api-search.test.js    2012-08-22 16:36:47 +0900 (e5313b0)
@@ -84,8 +84,6 @@ suite('Search API', function() {
             hit: [{
               id: 'id3',
               data: {
-                _id: [3],
-                _key: ['id3'],
                 address: ['Hongo, Tokyo, Japan'],
                 description: [''],
                 email_address: ['info �� clear-code.com'],
@@ -119,8 +117,6 @@ suite('Search API', function() {
               {
                 id: 'id1',
                 data: {
-                  _id: [1],
-                  _key: ['id1'],
                   address: ['Shibuya, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� razil.jp'],
@@ -132,8 +128,6 @@ suite('Search API', function() {
               {
                 id: 'id3',
                 data: {
-                  _id: [3],
-                  _key: ['id3'],
                   address: ['Hongo, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� clear-code.com'],
@@ -145,8 +139,6 @@ suite('Search API', function() {
               {
                 id: 'id9',
                 data: {
-                  _id: [9],
-                  _key: ['id9'],
                   address: ['Tokyo, Japan'],
                   description: [''],
                   email_address: [''],
@@ -180,8 +172,6 @@ suite('Search API', function() {
               {
                 id: 'id1',
                 data: {
-                  _id: [1],
-                  _key: ['id1'],
                   address: ['Shibuya, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� razil.jp'],
@@ -193,8 +183,6 @@ suite('Search API', function() {
               {
                 id: 'id3',
                 data: {
-                  _id: [3],
-                  _key: ['id3'],
                   address: ['Hongo, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� clear-code.com'],
@@ -206,8 +194,6 @@ suite('Search API', function() {
               {
                 id: 'id9',
                 data: {
-                  _id: [9],
-                  _key: ['id9'],
                   address: ['Tokyo, Japan'],
                   description: [''],
                   email_address: [''],
@@ -250,8 +236,6 @@ suite('Search API', function() {
               {
                 id: 'id1',
                 data: {
-                  _id: [1],
-                  _key: ['id1'],
                   address: ['Shibuya, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� razil.jp'],
@@ -263,8 +247,6 @@ suite('Search API', function() {
               {
                 id: 'id3',
                 data: {
-                  _id: [3],
-                  _key: ['id3'],
                   address: ['Hongo, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� clear-code.com'],
@@ -299,8 +281,6 @@ suite('Search API', function() {
               {
                 id: 'id3',
                 data: {
-                  _id: [3],
-                  _key: ['id3'],
                   address: ['Hongo, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� clear-code.com'],
@@ -312,8 +292,6 @@ suite('Search API', function() {
               {
                 id: 'id9',
                 data: {
-                  _id: [9],
-                  _key: ['id9'],
                   address: ['Tokyo, Japan'],
                   description: [''],
                   email_address: [''],
@@ -379,8 +357,6 @@ suite('Search API', function() {
               {
                 id: 'id1',
                 data: {
-                  _id: [1],
-                  _key: ['id1'],
                   address: ['Shibuya, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� razil.jp'],
@@ -392,8 +368,6 @@ suite('Search API', function() {
               {
                 id: 'id3',
                 data: {
-                  _id: [3],
-                  _key: ['id3'],
                   address: ['Hongo, Tokyo, Japan'],
                   description: [''],
                   email_address: ['info �� clear-code.com'],
@@ -405,8 +379,6 @@ suite('Search API', function() {
               {
                 id: 'id9',
                 data: {
-                  _id: [9],
-                  _key: ['id9'],
                   address: ['Tokyo, Japan'],
                   description: [''],
                   email_address: [''],
@@ -458,8 +430,6 @@ suite('Search API', function() {
               {
                 id: 'id2',
                 data: {
-                  _id: [2],
-                  _key: ['id2'],
                   realname: ['Pumpkin Man'],
                   nickname: ['Jack-o\'-Lantern']
                 }
@@ -467,8 +437,6 @@ suite('Search API', function() {
               {
                 id: 'id1',
                 data: {
-                  _id: [1],
-                  _key: ['id1'],
                   realname: ['Jack Sparrow'],
                   nickname: ['Captain']
                 }
@@ -502,8 +470,6 @@ suite('Search API', function() {
               {
                 id: 'id1',
                 data: {
-                  _id: [1],
-                  _key: ['id1'],
                   realname: ['Jack Sparrow'],
                   nickname: ['Captain']
                 }
@@ -538,8 +504,6 @@ suite('Search API', function() {
               {
                 id: 'id2',
                 data: {
-                  _id: [2],
-                  _key: ['id2'],
                   realname: ['Pumpkin Man'],
                   nickname: ['Jack-o\'-Lantern']
                 }
-------------- next part --------------
HTML����������������������������...
Download 



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