MOONGIFTニコニコ出張所

画像からテキストまで。業務で使えるオープンソース(141)「検索」

2014/11/05 13:06 投稿

  • タグ:
  • 登録タグはありません
  • タグ:
  • 登録タグはありません

今回のテーマは検索です。デスクトップ向けのWebで最もポピュラーな技術ではないでしょうか。検索はGoogleが手の届く範囲とそれ以外というくらい世界が異なって見える技術です。Googleの手の届かない世界ではアルゴリズムも異なりますし、求められる結果も異なるでしょう。

そこで今回は検索の種類と、主なオープンソース・ソフトウェアを紹介します。自社サイト、ローカルネットワーク内に立てる検索サービスとして参考にしてください。

テキスト

一番オーソドックスな検索がテキストでしょう。Googleのようなクローリング式もありますが、企業のサイトであればデータベースを検索するような仕組みを考えるはずです。特に個人のデータから検索するなど、ログイン情報に結びついていたりするとGoogleのようなWeb全体からの検索は不向きです。

ElasticSearch、Hyperestraier、Solrのように別途検索サーバを立てるタイプの他、Groongaやpg_bigmのようにデータベースに組み込むタイプのモジュールもあります。

画像

画像は似たような画像を探す類似画像検索の他、Google画像検索のように文字で探す検索エンジンがあります。オープンソース・ソフトウェアで提供されるのは類似画像検索が多いようです。文字列検索は画像の周囲にある文字情報が必要になるため、タグ付け含めて別な仕組みが必要になるでしょう。

ユーザが手書きで描いたデータから検索するタイプもありますが、あれもCanvasから画像を生成すれば良いので広い意味で類似画像検索になります。写真アプリをはじめ、画像検索のニーズも根強いので技術的にはチャレンジしがいがある分野ではないかと思います。

位置情報

一番有名のはMongoDBでしょうか。ついでPostGISもあります。しかし位置情報検索はテキスト検索と組み合わせて行われることが多く(ある場所を起点として店名で検索など)、MongoDBなどでは全文検索が実装しづらいのが難点です。そこでSolrにある位置情報検索を使うことで、全文と合わせた利用もできるようになります。

デスクトップ

Webやサーバだけでなく、検索はローカルでのニーズも根強くあります。10年くらい前にデスクトップ検索に注目が集まりましたが、OSの標準機能として提供されるようになってからは消沈したようです。Googleデスクトップ検索も2011年にサービス終了しています。

とはいえ小さなニーズはまだまだあります。単純にフォルダ内のファイルをgrepするようなインデックス不要で使えるタイプのものです。

リポジトリ

意外と面倒なのがソースコードの検索ではないかと思います。特に過去に削除した行を検索したいと言った時にかゆい所に手が届くツールは多くありません。また、ファイルの種類や修正者でフィルタリングしたり、リポジトリに特化した検索は多くなかったりします。GitHubの検索はそこそこ便利ですが、ローカルでもあれくらいの検索が行えると便利でしょう。

プログラミングではCTAGがよく使われてきましたが、最近ではあまり見かけなくなっている気がします。生成が若干面倒というのがあるので、CTAGの生成だけ別フローで処理してくれたりすると便利ですよね。

 

ここから先は有料になります

ニコニコポイントで購入する

チャンネルに入会して購読する

  • この記事は過去記事の為、今入会しても読めません。ニコニコポイントでご購入下さい。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事

継続入会すると1ヶ月分が無料です。 条件を読む

MOONGIFTチャンネル

MOONGIFTチャンネル

月額
¥550  (税込)
このチャンネルの詳細