タグ

ブックマーク / rubyu.hatenablog.com (2)

  • 最近のバイナリハッシングをいくつかJavaで実装してみた - rubyu's blog

    去年の終わりから、バイナリハッシングを使った近似近傍検索をいろいろ調べていたのですが、ぼちぼち一段落したので、ひと通りまとめておきます。 バイナリハッシングとは。 個の 次元の点からなるデータセット で、元空間での近傍点を、類似したバイナリコードに関連づける技術。 要するに、実数ベクトルの検索をマトモにやるには、最近のデータは膨大すぎるのでお手上げ。なので、元空間での距離をなるべく保ったまま、バイナリコードに落としましょう。 そうすると、バイナリ一致か、1ビット違うか、2ビット違うか...と、捜索していくにしても、元空間のデータでやるより高速で、しかもストレージ容量を削減できるというわけです。 その ビットのバイナリコード を作るために、 個のハッシュ関数が使われる。 ハッシュ関数は と定義される。ここで、 はデータセット。 は射影ベクトル。 は閾値。 線形写像ベースのハッシングはシンプル

    最近のバイナリハッシングをいくつかJavaで実装してみた - rubyu's blog
  • mod_rewriteを使ってCGI環境で超高速にキャッシュを返す - rubyu's blog

    キャッシュしてもいいHTMLを返すCGIであれば、以下のようにすることでレスポンスがとても高速になる coreserverとかcoreserverとか、fastcgiが使えないので考えた苦し紛れではあるが用途によってはかなり効果がありそう mod_rewriteでキャッシュがあるかを判別し、あればキャッシュを返し、なければCGIに処理が渡る CGIはHTMLを生成し、キャッシュを出力してからHTMLを返す キャッシュはCronで定期的に削除される メリットは「キャッシュがあればCGIを立ち上げる必要がない」こと mod_rewriteはapacheでの処理なので、キャッシュのレスポンスは静的なHTMLと同じ また要求があった際にのみCGIでHTMLが生成されるので、ページ数が大量であっても全部を最初に生成したりする必要がない リクエストが 〜/hoge/[0-9a-z]/ の場合 /.ht

    mod_rewriteを使ってCGI環境で超高速にキャッシュを返す - rubyu's blog
  • 1