image

  • フォト Amazonギフト券
    ※この時計の時刻は、閲覧しているパソコンのものであり、必ずしも正確な時間とは限りません

検索

最近のトラックバック

無料ブログはココログ

« jruby と ruby での DB アクセスの速度 (その2) | トップページ | tcl/tk -> ruby/tk の書き換えができない »

2008-11-09

jruby と ruby での DB アクセスの速度 (その3)

ATOKダイレクトプラグインで郵便番号検索

自宅には、Windows マシンが無いので、休日に会社マシンで、ATOK ダイレクトプラグインの環境を設定し、すこし遊んでみた。

web 上のいくつかのサンプルコードで、作り方を勉強した後、
昨日作った ruby での郵便番号番号検索を、ATOK プラグイン化してみた。
郵便番号の一部 or 住所の一部で検索できるようにしてある。
作ってみて思ったのは、2点。
1. ATOK の選択候補画面のカスタマイズもユーザー側でできるようにして欲しいということ。
   候補画面の GUI も ruby で作りたいものだ。
2. Debug 環境は、もう少し工夫したものが作れそうな気がする。
    Netbeans 上でのデバッガをつかえような、実行用メインメソッドをつくれば済む?

なお、sqlite3 の DB は、 firefox のプラグインの SQLite Manager を使うと内容確認などには便利。

$ cat zip-search.rb
#! /usr/bin/ruby -Ku

$KCODE = 'u'

require 'timeout'
require 'rubygems'
require 'active_record'
require 'nkf'

module Atok_plugin

  class Zip < ActiveRecord::Base
    def to_s
      return  "#{col1}|#{col2}|#{col3}|#{col4.toutf8}|#{col5.toutf8}|#{col6.toutf8}|#{col7.toutf8}|#{col8.toutf8}|#{col9.toutf8}|#{col10}|#{col11}|#{col12}|#{col13}|#{col14}|#{col15}"
    end
  end

  def run_process( a_request_data )
    ActiveRecord::Base.establish_connection(
                                            :adapter  => "sqlite3",
                                            :database => "zips.db",
                                            :timeout  => 5000
                                            )
    # ログをファイルに出す
    # ActiveRecord::Base.logger = Logger.new("debug.log")

    res = []
    timeout(20) do
      key = "%" + a_request_data['composition_string'] + "%"
      res = Zip.find(:all, :conditions => ["col3 like ? or col7 like ? or col8 like ? or col9 like ?", key, key, key, key])
    end
    ans = []
    res.each do |r|
      ans << {'hyoki' => r.col3 + "|" + r.col7 + r.col8 + r.col9, 'comment' => r.to_s}
    end
    {'candidate' => ans}

  rescue Exception => e
    {'candidate' => [{'hyoki' => 'エラーが発生しました', 'comment' => e.to_s}]}
  end

end

ローカルマシンの DB 管理するよりは、memcached でデータを共有したほうが良い気がする。
memcached で、社員名簿 (名前、内線番号、所属部署) などを保持して、それを ATOK + ruby で検索したり、データ内容の保守ができるようにするぐらいが向いているかな。

ともかくここ2日の作業で、10 万件を超える郵便番号の検索が ATOK + ruby で十分可能なことが分かった。
XBRLデータから科目ID, 科目表記名、期間毎の値 をDBに保持して それを検索するようなことは、問題なく実現できそうだとの感触を得られた。

« jruby と ruby での DB アクセスの速度 (その2) | トップページ | tcl/tk -> ruby/tk の書き換えができない »

コメント

youtubeエロ動画

http://freemovebank.blog75.fc2.com/

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/184434/43061841

この記事へのトラックバック一覧です: jruby と ruby での DB アクセスの速度 (その3):

« jruby と ruby での DB アクセスの速度 (その2) | トップページ | tcl/tk -> ruby/tk の書き換えができない »

mokuji

2013年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

google

  • twitter
  • __
  • _
    Googleボットチェッカー

合わせて読む

  • 合わせて読む
    フィードメーター - katoy: cocolog あわせて読みたい

リンク