groongaのドキュメントにも位置情報検索について書かれているのですが、情報の更新が追いついていないため情報が不足しています。そこで、ここに現状に合わせたgroongaの位置情報検索についての情報をまとめておきます。なお、ここにまとめた内容もドキュメントに反映させる予定です。 できること groongaには位置情報を用いた検索機能がついています。位置情報を用いた検索では索引を利用するため、全文検索と同じように高速に検索することができます。ただし、PostGISやMySQLのように1線や面などもデータとして保持できるというわけではなく、点のみをデータとして保持できます。よって、groongaにできることは以下の通りです。 指定した四角の中に含まれている座標を持つレコードを検索する。 指定した円の中に含まれている座標を持つレコードを検索する。 座標間の距離を計算する。 ある座標からの距離が近
他の人がzshを使っているのを見ていると、「もっと便利に使えるのに」と、もやっとしたり、「え、その便利な機能ってなに?」と、発見があったりします。だれかに「この設定をすると便利ですよ」と話しやすくするために、今のzshのおすすめ設定をここに記しておきます。 もし、Emacsも使っている場合はおすすめEmacs設定もどうぞ。 ディレクトリ構成 長年漬け込んできたzshの設定がそこそこの量になっているので、以下のようなディレクトリ構成にして分類しています。主に、zsh標準機能の設定と追加パッケージの設定を分けるためにこうしています。 ~ ├── .zshrc # シェルを起動する毎に読み込まれる。 │ # ~/.zsh.d/zshrcを読み込んで │ # 標準機能の追加設定を行う。 ├── .zshenv # ログイン時に一度だけ読み込まれる。 │ # ~/.zsh.d/zshenvを読み込ん
しばらく人前で話す予定がないので、講演者が本当に話したかったスピーチを残しておきます。 実は、日本Ruby会議2011で話したことは札幌Ruby会議02で話したことと札幌Ruby会議03で話しかけたことの続きでした。話の流れも札幌Ruby会議02と同じ流れにしました。一番伝えたいことは話しの真ん中に持っていき、その後に実例を伝えるという流れです。 札幌Ruby会議のころは「伝えること」について考えていました。 私がプログラミングを始めたのは大学のころ1で、世間で活躍しているプログラマーよりだいぶ遅いです。でも、プログラミングが好きでたくさんプログラムを書いてきました。今では、プログラミングをはじめて10年くらい経ち、だいぶ上手くなってきました。でも、このままだとよくないなぁと思うようになりました。 私は独学でプログラミングを学んできました。本を読んだりコードを書いたり、他の人のよいところを
日本Ruby会議2011の3日目の「テスティングフレームワークの作り方」の準備をしていますが、30分だと詰め込み過ぎになってしまうので、話さないことを事前に書いておきます。それは、テストを抽象化するためのAPIの違いです。 RSpecとtest-unit 2でのAPIの違いというと、class UserTest < Test::Unit::TestCaseとdescribe Userやassertとshouldの違いの方が目に付きますが、抽象化するためのAPIにもツールの特徴が出ています。抽象化するためのAPIはテストの量が増えてくると必要になる大事な機能です。ここでは、その中でも「テストを共有するAPI」について考えます。 まず、ツールの考え方について確認し、その後、それぞれのツールでどのようなAPIになっているかをみます。 ツールの考え方 まず、それぞれのツールの考え方について確認しま
肉の日なのでgroongaとその関連プロジェクトがリリースされました。 groonga 1.2.3 rroonga 1.2.4 mroonga 0.7(groongaストレージエンジン) このうち、mroongaの変更点が大きめなので、mroonga 0.7の変更点について紹介します。 mroongaとは mroonga1はMySQLにgroongaの全文検索機能を追加するストレージエンジンです。ストレージエンジンというのはMySQLのデータストア機能・検索機能を担当するモジュールのことです。ここがプラグインとして後から追加できる仕組みになっています。groongaをバックエンドとしてストレージエンジンを実装しているのがmroongaです2。 mroongaを使うと嬉しいこと mroongaを使うと使い慣れたRDBやSQLを使って全文検索機能が得意なアプリケーションを開発できるようになりま
1ヶ月ほど前になりますが、検索エンジンについての本が出版されました。GoogleなどのWeb検索システムからAmazonなどのショッピングサイトまで、今では検索システムはなくてはならないものになりました。そんな検索システムのベースとなる考えや知識などを把握したい場合に向いているのがこの本です。検索システムを作ろうとしている人には読んで欲しい一冊です。 https://amazon.co.jp/dp/4822284611 「この本を読めば独自の検索エンジンを作れるようになる!」といった類の本ではなく、「検索エンジンの基本がわかる!」という類の本です。そのため、「この検索エンジンをもっとカリカリにチューニングして性能をあげたい!」というときに読む本ではありません。そうではなく、「検索エンジンについてまとまった知識がないので、基本をしっかりおさえたい!」という用途向きです。 内容 著者は全文検索
デバッグしやすいassert_equalの書き方とデバッグしにくいassert_equalの書き方があるのは知っていますか?1 デバッグしやすいassert_equalの書き方を2パターン紹介します。 まとめたassert_equal まず、1つ目のよくみるデバッグしにくいassert_equalの書き方です。 def test_parse assert_equal(29, parse_integer("29")) # (1) assert_equal(29, parse_integer("+29")) # (2) assert_equal(-29, parse_integer("-29")) # (3) end これがデバッグしにくいのは、(1)が失敗したら(2)、(3)が実行されないからです。すべてのassert_equalが実行されて、どのassert_equalが失敗したかを確認す
今日は年に一度の肉の日だからか、いろいろなソフトウェアがリリースされていますね。 groonga 1.1.0 rroonga 1.1.0 Cutter 1.1.6 ChupaText 0.9.0 test-unit-rr 1.0.0 test-unit-runner-gtk2 0.0.2 test-unit-full 0.0.3 このうち、Cutter 1.1.6について紹介します。 Cutterとは CutterはC/C++用の単体テストフレームワークです。スクリプト言語の単体テストフレームワークのように簡単にテストを書けること、テストが失敗した時にデバッグしやすいことを重視しています。どちらも「テストが苦痛」にならないために大事なことです。 Cutter 1.1.6ではテストをより頻繁に実行しやすくするための機能を強化しました。それがTDDきのたんのサポートです。 TDDきのたんとは
るりまサーチという最近の検索技術を使ってRubyのリファレンスマニュアルを検索するWebアプリケーションがあります。表向きの存在理由は「手早く簡単にドキュメントを検索できるシステムを提供することで、Rubyユーザが楽しくプログラミングすることを妨げないようにする」ですが、実はもう一つ理由があります。それは、「Rubyのリファレンスマニュアルをよいものにしている人たちがいることに気づいてもらう」というものです。 ここを読んでいる人の中に、他の人が実装したプログラミング言語やライブラリのドキュメントを書いて、メンテナンスしている(アップデートに追従するなど)人がどれだけいるのかわかりませんが、この作業はとても大変で根気のいる作業です。しかも、その成果をなかなか実感してもらえません。Ruby本体に新しい機能(例えば、「バイト長」ではなく「文字長」を数える機能)が入ったら、プログラムが簡潔になるな
12月4日に開催された札幌Ruby会議03に参加し、ライトニングトークで少し話しました。話さなかったことと感じたことを残しておきます。 文書検索ラングバの話をするつもりでしたが、もっと話したいことができたのでそっちを話すことにしました1。それが「デバッグ力」についてです。 デバッグ力? 「デバッグ力」とは一般的な用語ではありません。実際、検索してもほとんど使っている人はいません。札幌で伝えたいことを表す言葉に一番しっくりくるのが「デバッグ力」だったので、そう呼ぶことにしました2。 コンピュータの世界では、「バグ」は「不具合」とか「問題」といった意味で使われます。デバッグとはバグを取り除くこと、つまり、問題を解決する作業です。プログラマは問題を解決していくことで、徐々に目的を達成するプログラムに近づけていきます。「デバッグ力」には、目的のものへ近づくための力、前へ進む力という意味をこめていま
先月の29日に、全文検索エンジンgroongaを囲む夕べ #1が開催されました。内容はgroonga本体について、groongaとRubyについて、groongaとMySQLについて、groongaとPostgreSQLについて、とgroonga三昧の内容でした。 groongaとRubyについての資料は以降で紹介します。groongaとPostgreSQLについてはすでに資料が公開されています(textsearch groonga v0.1)。参加できなかった方は参考にしてください。 それでは、groongaとRubyについての資料を簡単な解説付きで紹介します。 Ustreamで配信したものの録画もあります。Ruby枠は49分くらいからです。 リリース情報 開催日当日の29日、groongaの新しいバージョン1.0.4がリリースされました。もちろん、この夕べに合わせたものです。 さらに、
全文検索エンジンgroongaを囲む夕べ #1 : ATNDの定員が50人から120人に増えましたね。たぶん、何人かはキャンセルするはずなので、今のうちに登録しておくとおそらく参加できるでしょう。興味のある方はお早めに登録してください。 さて、以前、サーバ上でPDFやオフィス文書からテキストを抜き出す方法を紹介しました。これらを使うことにより様々なフォーマットの文書からテキストを抽出し、groongaなどの全文検索エンジンを利用して高速に目的の文書を見つけることができます。例えば、ファイルサーバやデスクトップ上にある文書を検索する用途にも有用です。 しかし、文書のフォーマット毎に抽出方法を変えなければいけないため、実際にテキストを抽出する部分(インデクサーの機能の一部)を作る場合に不便です。文書のフォーマットに依らず、同じ方法でテキストを抽出できると便利ですよね。 ということで、文書のフォ
毎年開催規模が大きくなっている日本Ruby会議に今年も参加します。今年も去年と同じくスポンサーと発表者として参加します。 発表タイトルは「るりまサーチの作り方 - Ruby 1.9でgroonga使って全文検索」です。 内容 発表内容はるりまサーチという、Rubyリファレンスマニュアル刷新計画 (通称るりま)の成果物であるRubyのドキュメントを全文検索するWebアプリケーションの関連技術を紹介するというものです。もう少し具体的にいうと以下のような話題になります。 全文検索エンジンgroongaを用いた検索サイトの作り方 「情報を絞り込む」を主体としたユーザインターフェイス 高速に検索するためのデータの持ち方 groongaの性能を落とさずによさを活かすには、どのようにRubyと連携すればよいか Ruby 1.9 + Rackで効率よくWebアプリケーションを作る方法 運用時に発生した問題
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く