CreateField Blog

オープンソースを使って個人でWebサービスを開発・運営していたブログ

Groonga

Mroonga 7.06からMySQLのgenerated column/MariaDBのvirtual columnが利用可能に

全文検索エンジンGroongaのMySQLストレージエンジンであるMroongaのソースをいじる機会があったので、ついでにMySQLのgenerated columnとMariaDBのvirtual column(computed column)の対応をしました。 次回リリースのMroonga 7.06からはgenerated columnを作…

特許の検索・分析サービスPatentfieldをリニューアルしました

はじめに 私は、2015年1月よりIP Nexusというスタートアップに所属しています。 仕事でPG書いたことがない人間が知財のWeb系のスタートアップに転職した話 - CreateField Blog IP Nexusのメンバーは、投資銀行での経歴をもつ米国とドイツの知財訴訟弁護士や…

Groonga 6.0.2から多段ドリルダウンが利用可能に

GroongaはC/C++で書かれた国産の全文検索エンジンライブラリです。 サーバとしても組み込みのライブラリとしても利用することが可能です。 Groongaでは従来よりドリルダウン機能(ファセット)が提供されていましたが、 ドリルダウン機能の結果をつかってさら…

Groongaのパトリシアトライを使って高速なあいまい検索を実装した

はじめに あいまい検索はたとえば、編集距離を求めることによって実現することができます。 レーベンシュタイン距離(レーベンシュタインきょり、英: Levenshtein distance)は、二つの文字列がどの程度異なっているかを示す距離の一種である。編集距離(へ…

ビットパラレルを使ってGroongaで高速な編集距離関数の検証

Groongaではサジェスト機能のためにedit_distance関数が実装されています。 これはO(nm)の計算量が必要な動的計画法で文字数が多くなると結構遅くなります。 そこで、高速化するためにビットパラレル法をGroongaの関数で実装してみて比較してみました。 naoa…

Groongaからword2vecを使って類似文書を取得してみる

Groonga Advent Calendar 2015の13日目の記事です。 全文検索エンジンGroongaからword2vecを簡単に使えるプラグイン - CreateField Blog こちらで作ったプラグインのsentence_vectorsオプションを試してみました。 naoa/groonga-word2vec · GitHub 学習ファ…

全文検索エンジンGroongaからword2vecを簡単に使えるプラグイン

はじめに Groonga Advent Calendar 2015の11日目の記事です。 GroongaはC/C++で書かれた高速な国産の全文検索エンジンです。 word2vecは、Googleが研究評価用に作った単語の特徴をベクトルで表現しニューラルネットモデルで教師なし学習をさせるツールです。…

PostgreSQLの日本語対応全文検索モジュールpg_bigmとPGroongaを検証してみた

はじめに 最近、Web系のエンジニアに転職して、Railsをよく触っています。 Rails界隈では、HerokuかActiveRecordの関係かよくわかりませんがPostgreSQLが利用されていることが多いような気がします。 これまで個人的に全文検索のWebサービスを開発するために…

MroongaでGroongaの機能を使いこなす高度なテーブル設計をする方法

はじめに MySQL/MariaDBで高速に全文検索するためのオープンソースのストレージエンジンMroongaは、以下のように、Engine=Mroonga、FULLTEXT INDEX (${source_column})と書くだけで非常に簡単に全文検索を使い始めることができます。 CREATE TABLE memos ( i…

GroongaとTokyoCabinetのHash表のベンチマークについて

はじめに 全文検索エンジンGroongaは超高速な全文検索ライブラリとしての機能を有しますが、単純なハッシュ表等のAPIも提供されており、ファイルへの永続化前提のインプロセス型のKVS(key value store)としても利用することができます。 ファイルへの永続化…

GroongaとElasticsearchの転置索引の違いと更新反映速度について

はじめに こちらの記事では、GroongaとElasticsearchの単純な検索性能、更新性能、 ディスク使用効率を比較しました。 その結果では、Groongaの検索速度がElasticsearchよりも数倍ほど速く、Elasticsearchの更新速度がGroongaよりも数倍ほど速かったです。 …

全文検索エンジンGroongaユーザ勉強会@神戸を主催しました

2014/06/27(金)に全文検索エンジンGroongaユーザ勉強会@神戸を主催しました。 開催のきっかけ 草の根Groongaイベントのお誘いを受けて、関西圏でもGroongaのイベントがあるといいなと思い、神戸でも開催してみることにしました。 会議室の確保 人の集まり具…

61st Ruby/Rails勉強会@関西でLTしました

以下は、LTの資料です。 MacとRabbitの操作に戸惑ってしまい、デモの検証が一部しかできませんでした。デモができなかった分の検証結果を追記しています。 Ruby kansai-20140531-ruby-kansai-20140531 from naoa_y 2014/6/27(金)19:00~神戸でGroongaの勉強…

国産の全文検索エンジンGroonga vs 世界的流行のElasticsearch

2014年4月21日は、第4回Elasticsearch勉強会ですね! http://elasticsearch.doorkeeper.jp/events/8865 第4回Elasticsearch勉強会は、参加希望者が約200名の大反響なようです。 私は勉強会に参加できないので、C言語で書かれた国産の高速な全文検索エンジンG…