[Groonga-commit] droonga/presentation-droonga-meetup-1-introduction at 1f54625 [master] Use drnbench's utility commands to generate query patterns

Back to archive index

YUKI Hiroshi null+****@clear*****
Thu Jul 31 12:01:47 JST 2014


YUKI Hiroshi	2014-07-31 12:01:47 +0900 (Thu, 31 Jul 2014)

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

  Message:
    Use drnbench's utility commands to generate query patterns

  Removed files:
    benchmark/generate-patterns.rb
  Modified files:
    benchmark/README.md

  Modified: benchmark/README.md (+9 -3)
===================================================================
--- benchmark/README.md    2014-07-30 21:12:02 +0900 (f5b926c)
+++ benchmark/README.md    2014-07-31 12:01:47 +0900 (bb0c312)
@@ -78,6 +78,8 @@ https://github.com/droonga/wikipedia-search/blob/master/lib/wikipedia-search/tas
    (変換には7分程度、Groongaへのロードには12分程度を要した)
  * 30万件のページを各ページごとに最大1000文字までロードすると、データベースは1.1GiB程度になった。
    (変換には17分程度、Groongaへのロードには6分程度を要した)
+ * 150万件のページを各ページごとに最大1000文字までロードすると、データベースは1.1GiB程度になった。
+   (変換には53分程度、Groongaへのロードには6分程度を要した)
 
 今回は30万件のページを各ページごとに最大1000文字まで変換したデータに基づく1.1GiBのデータベースを使用した。
 
@@ -191,14 +193,18 @@ droonga-sendを使うが、スキーマ定義の時は宛先は1ノードだけ
 
 ページのタイトルから、検索リクエストのパターンファイルを作成する。
 
+    % base_params="table=Pages&limit=10&match_columns=title,text&output_columns=snippet_html(title),snippet_html(text),categories,_key"
     % curl "http://192.168.200.254:10041/d/select?table=Pages&limit=200&output_columns=title" | \
-        ruby ./generate-patterns.rb \
+        drnbench-extract-searchterms | \
+        drnbench-generate-select-patterns --base-params="$base_params" \
         > ./patterns-1node.json
     % curl "http://192.168.200.254:10041/d/select?table=Pages&limit=200&output_columns=title" | \
-        ruby ./generate-patterns.rb 192.168.200.254,192.168.200.3 \
+        drnbench-extract-searchterms | \
+        drnbench-generate-select-patterns --base-params="$base_params" --hosts=192.168.200.254,192.168.200.3 \
         > ./patterns-2nodes.json
     % curl "http://192.168.200.254:10041/d/select?table=Pages&limit=200&output_columns=title" | \
-        ruby ./generate-patterns.rb 192.168.200.254,192.168.200.3,192.168.200.4 \
+        drnbench-extract-searchterms | \
+        drnbench-generate-select-patterns --base-params="$base_params" --hosts=192.168.200.254,192.168.200.3,192.168.200.4 \
         > ./patterns-3nodes.json
 
 patterns-2nodes.json, patterns-3nodes.jsonは、接続先をそれぞれのノードに等分に振り分けるようにした物。

  Deleted: benchmark/generate-patterns.rb (+0 -62) 100644
===================================================================
--- benchmark/generate-patterns.rb    2014-07-30 21:12:02 +0900 (8156537)
+++ /dev/null
@@ -1,62 +0,0 @@
-require "json"
-
-body = JSON.parse(STDIN.read).last.last
-records = body[2..-1]
-with_query_params = {
-  "table"            => "Pages",
-  "limit"            => 10,
-  "match_columns"    => "title,text",
-  "output_columns"   => "snippet_html(title),snippet_html(text),categories,_key",
-#  "drilldown"        => "categories",
-#  "drilldown_limits" => 5,
-#  "drilldown_sortby" => "-_nsubrecs",
-}
-
-def to_query_params(params)
-  params.collect do |key, value|
-    value = value.to_s
-                 .gsub(/[:;]/, " ")
-                 .strip
-                 .gsub(/ +/, "%20")
-    "#{key}=#{value}"
-  end.join("&")
-end
-
-$with_query_patterns = records.collect do |record|
-  title = record.first
-  params = with_query_params.merge("query" => title)
-  {
-    "path" => "/d/select?#{to_query_params(params)}",
-  }
-end
-
-def add_patterns(patterns, host=nil, frequency=1.0)
-  suffix = ""
-  suffix = "-#{host}" unless host.nil?
-
-  patterns["with-query#{suffix}"] = {
-    "frequency" => frequency,
-    "method"    => "get",
-    "patterns"  => $with_query_patterns,
-  }
-
-  if host
-    patterns["with-query#{suffix}"]["host"] = host
-  end
-
-  patterns
-end
-
-patterns = {}
-
-hosts=ARGV.first
-if hosts.is_a?(String)
-  hosts = hosts.split(/\s*,\s*/)
-  hosts.each do |host|
-    add_patterns(patterns, host, 1.0 / hosts.size)
-  end
-else
-  add_patterns(patterns)
-end
-
-puts JSON.pretty_generate(patterns)
-------------- next part --------------
HTML����������������������������...
Download 



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