[Groonga-commit] droonga/presentation-droonga-meetup-1-introduction at 2520e81 [master] Add demonstration steps

Back to archive index

Piro / YUKI Hiroshi null+****@clear*****
Wed Jul 30 02:28:54 JST 2014


Piro / YUKI Hiroshi	2014-07-30 02:28:54 +0900 (Wed, 30 Jul 2014)

  New Revision: 2520e81fb5fea0162e6a9d3b1c169fb9adcc1056
  https://github.com/droonga/presentation-droonga-meetup-1-introduction/commit/2520e81fb5fea0162e6a9d3b1c169fb9adcc1056

  Message:
    Add demonstration steps

  Added files:
    demo/index.html
  Modified files:
    introduction.md

  Added: demo/index.html (+65 -0) 100644
===================================================================
--- /dev/null
+++ demo/index.html    2014-07-30 02:28:54 +0900 (a310e12)
@@ -0,0 +1,65 @@
+<!DOCTYPE html>
+<meta charset="UTF-8">
+<title>TODO List</title>
+<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
+<p><input type="text" size="30" id="title-field"><button id="add-button">登録</button></p>
+<p><input type="text" size="20" id="search-field">
+   <button id="search-button">検索</button></p>
+<div id="result"></div>
+<script type="text/javascript"><!--
+  var base = 'http://' + location.hostname + ':10041';
+
+  // レコードを追加する。
+  $('#add-button').click(function() {
+    var title = $('#title-field').val();
+    if (!title)
+      return;
+    $.ajax({
+      url:      base + '/d/load',
+      data:     {
+        table:  'Topic',
+        values: JSON.stringify([{
+          _key:  title,
+          title: title
+        }])
+      },
+      dataType: 'jsonp',
+      success:  function() {
+        $('#title-field').val('');
+      }
+    });
+  });
+
+  // レコードを検索する。
+  $('#search-button').click(function() {
+    var data = {
+      table:          'Topic',
+      output_columns: 'title',
+      limit:          10
+    };
+    var term = $('#search-field').val();
+    if (term)
+      data.filter = 'title @ ' + JSON.stringify(term);
+    $.ajax({
+      url:      base + '/d/select',
+      data:     data,
+      dataType: 'jsonp',
+      success:  function(result) {
+        if (!result)
+          return;
+        var body = result[1];
+        var searchResult = body[0];
+        var count = searchResult[0][0];
+        var topics = searchResult.slice(2);
+        $('#result')
+          .empty()
+          .append($('<p>').text(count + '件見つかりました。'))
+          .append($('<ul>')
+                    .append(topics.map(function(topic) {
+                      var title = topic[0];
+                      return $('<li>').text(title);
+                    })));
+      }
+    });
+  });
+// --></script>
\ No newline at end of file

  Modified: introduction.md (+102 -1)
===================================================================
--- introduction.md    2014-07-30 01:51:42 +0900 (5f6def1)
+++ introduction.md    2014-07-30 02:28:54 +0900 (2b7e60f)
@@ -182,12 +182,113 @@ GroongaからDroongaへ
 
  * Groongaベースの
    アプリケーションを作成
+ * Droongaクラスタを構築
  * バックエンドをDroongaに移行
-   * Droongaクラスタを構築
    * データを移行
    * アプリケーションの接続先変更
 
+([Groongaユーザ向けの、はじめてのDroonga](http://www.clear-code.com/blog/2014/7/11.html)
+ と同内容です)
 
+# デモ:用意する物
+
+ * サーバ2つ
+   * 192.168.100.50
+   * 192.168.100.51
+
+## 実行するコマンド
+
+Groongaのインストール
+
+    % sudo apt-get -y install software-properties-common
+    % sudo add-apt-repository -y universe
+    % sudo add-apt-repository -y ppa:groonga/ppa
+    % sudo apt-get update
+    % sudo apt-get -y install groonga
+
+データベース作成
+
+    % mkdir -p $HOME/groonga/db/
+    % groonga -n $HOME/groonga/db/db quit
+
+テーブル定義
+
+    % groonga $HOME/groonga/db/db table_create --name Topic --flags TABLE_PAT_KEY --key_type ShortText
+    % groonga $HOME/groonga/db/db column_create --table Topic --name title --flags COLUMN_SCALAR --type ShortText
+    % groonga $HOME/groonga/db/db table_create --name Term --flags TABLE_PAT_KEY --key_type ShortText -- d ef aul t_tokenizer TokenBigram --normalizer NormalizerAuto
+    % groonga $HOME/groonga/db/db column_create --table Term --name topic_title --flags "COLUMN_INDEX|WITH_POSITION" --type Topic --source title
+
+GroongaをHTTPサーバとして起動
+
+    % groonga -p 10041 -d --protocol http $HOME/groonga/db/db
+
+Webサーバを起動
+
+    % ruby -run -e httpd -- --port 8080 demo/ &
+
+Droongaのインストール
+
+    (on 192.168.100.50, 192.168.100.51)
+    % sudo apt-get update
+    % sudo apt-get -y upgrade
+    % sudo apt-get install -y libgroonga-dev ruby ruby-dev build-essential nodejs nodejs-legacy npm
+    % sudo gem install droonga-engine
+    % sudo npm install -g droonga-http-server
+    % mkdir ~/droonga
+    % droonga-engine-catalog-generate --hosts=192.168.100.50,192.168.100.51 --output=~/droonga/catalog.json
+
+サービス起動
+
+    (on 192.168.100.50)
+    % export host=192.168.100.50
+    % export DROONGA_BASE_DIR=$HOME/droonga
+    % droonga-engine \
+        --host=$host \
+        --log-file=$DROONGA_BASE_DIR/droonga-engine.log \
+        --daemon \
+        --pid-file=$DROONGA_BASE_DIR/droonga-engine.pid
+    % droonga-http-server \
+        --port=10042 \
+        --receive-host-name=$host \
+        --droonga-engine-host-name=$host \
+        --production=production \
+        --daemon \
+        --pid-file=$DROONGA_BASE_DIR/droonga-http-server.pid
+
+    (on 192.168.100.51)
+    % export host=192.168.100.51
+    % export DROONGA_BASE_DIR=$HOME/droonga
+    % droonga-engine \
+        --host=$host \
+        --log-file=$DROONGA_BASE_DIR/droonga-engine.log \
+        --daemon \
+        --pid-file=$DROONGA_BASE_DIR/droonga-engine.pid
+    % droonga-http-server \
+        --port=10042 \
+        --receive-host-name=$host \
+        --droonga-engine-host-name=$host \
+        --production=production \
+        --daemon \
+        --pid-file=$DROONGA_BASE_DIR/droonga-http-server.pid
+
+動作確認
+
+    % curl "http://192.168.100.50:10042/droonga/system/status"
+
+データの引き継ぎに必要なツール
+
+    % sudo gem install grn2drn droonga-client
+
+データの引き継ぎ
+
+    % grndump ~/groonga/db/db | grn2drn | \
+        droonga-send --server=192.168.100.50
+
+接続先の切り替え
+
+    % vi demo/index.html
+    -  var base = 'http://' + location.hostname + ':10041';
+    +  var base = 'http://' + location.hostname + ':10042';
 
 
 
-------------- next part --------------
HTML����������������������������...
Download 



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