Solr 4にて、基本はbi-gramだけど、1文字の検索にも対応させる
昔はbi-gramの場合、CJKTokenizerFactory ってのを使っていて、自分が持っているSolr本にもそう書いてあるが、最近は、StandardTokenizerFactory + CJKBigramFilterFactory を使うらしい。詳しくはggrks。
bi-gramの場合、検索クエリーが1文字の場合に対応出来ない。その辺の詳しい話もネット上に色々あるはず。でも、CJKBigramFilterFactory には uni-gram を出力するオプションもあり、それを使うと1文字の検索に簡単に対応できる。schema.xmlのCJKBigramFilterFactoryを使っているところを以下のようにするだけ。詳しくはドキュメントを参照。
<filter class="solr.CJKBigramFilterFactory" outputUnigrams="true" />
後は、indexを再構築すれば完了。
余談
Solr便利っすね。
タイトルに「Solr 4にて」と書いたけど、CJKBigramFilterFactoryが入ったのは3.6から?
PECLのSolrエクステンションをSolr 4に対応させる
PECLのSolrエクステンションはSolr 4では動かない
PECLのSolrエクステンションがあるんだけど、Solr 4ではcommitが上手く動かない(モジュールの最新バージョン1.0.2でもNG)。原因は`waitFlush`というパラメータが廃止になった?ため。詳しくはこの辺を参照。
SquerylでPostgreSQLのpoint型のデータを書き込む(これは酷い)
やりたい事
他のORMと比べて便利かどうかは特に検討せずに、とりあえずSquerylを使ってる。
PostgreSQLにはgeometry関連の型があって、更に詳しく言うとPostGISとそうじゃないやつがあるんだけど、その辺の詳細は省略。今回扱うのは通常のpoint型の話。x, yの2次元の座標を扱うもの。
で、今回はその point 型の値を書き込む(その場しのぎの)方法をさらっと。
Impalaのアーキテクチャを少し調べてみた
前回、Dremelの論文を読んで、分かる範囲で説明した。
さて、前回の記事を書いた後、BigQueryのホワイトペーパー (miyakawa_taku さんありがとうございます)を紹介されたので読んでみた。論文の要約+BigQueryの紹介と言った内容。
今回は、まずはそのホワイトペーパーの内容を少し紹介して、その後にImpalaのアーキテクチャにたどり着ければという感じ。
BigQueryのホワイトペーパーに書いてあること
Google BigQueryとは、データをアップロードしてそのデータに対してデータ分析が出来るというサービス。GoogleがDremelとして発表したシステムを外部向けにしたもの、らしい。お値段はこの辺。比較的お手頃という印象。
さて、ホワイトペーパーの中身について見ていく。
Webの負荷テストをEC2上での分散環境で行う。
夢の(悪夢の)TV露出、それに備えて負荷テスト
Webサイト・サービスを立ち上げて順調に成長していくと、ニュースサイトや雑誌に載ったり、運が良ければTVに取り上げられたりする。プロモーション視点で言うと夢の様なTVデビューも、インフラ担当に取っては悪夢でしか無い、と。
不幸中の幸いな事に、TVに取り上げられる場合は日時が決まっているので、事前に負荷テストを行なってチューニング等の対策を行う時間が取れる。
今回はWebサービスの「負荷テスト」を行う方法の一つとして、Amazon EC2上に複数のインスタンスを立てて、そこから対象のWebサービスに負荷をかけていく方法について説明する。