スポンサーサイト

一定期間更新がないため広告を表示しています

スポンサードリンク | - | | - | - | - | - |

エンジニアのためのスキルアップ勉強会『Tech Compass』 #tecomp ― Vol.2 「人気Webサービスの作り方教えます!」に参加しました。

第2回目も参加しました。
とりあえずメモ。
自分には欠けてる視点の話しなので面白かった。
ちょっと寒かったなぁ。


エンジニアのためのスキルアップ勉強会『Tech Compass』 #tecomp ― Vol.2 「人気Webサービスの作り方教えます!」 ―
日時:2013/04/23 19:00
場所:パレスサイドビル9F マイナビルーム

◎自己紹介
 ●株式会社Zaim/閑歳孝子
  小学校3年からFMVで草の根チャットとかにつないでた。(すげー)
  これがいい記事ですよ。http://www.1101.com/umeda_iwata/
  テレビとかで紹介されてるZaimやってます。
  3つの基準  
  ・日常的に使うもの
  ・普通の人が使うもの
  ・少なくとも自分は使うもの
  サービスの良さの基準
   縦軸:影響の深さ
   横軸:影響する人数
   この面積が大きいのがいいんでは。

 ●株式会社ワディット/和田裕介
  いろいろ作ってます「カウントダウンチューブ」とか「君のラジオ」とか30〜40くらい作ってます。
  ・「ボケて」ってのやってます。
   600万ボケ。アプリ120万DL   
  僕らがつくるための5Wについて
  ・なぜ?
   ・サービスの根本となる「哲学」をみんなで共有できるかが重要
   ・内向けのビジョンも大事
  ・何を?
   ・ユースケースで整理する
  ・いつ?
   ・つくろう!すぐ作れるようにしようねって感じ
  ・誰と?
   ・最強のチーム。意思決定がはやい。
  自分主体でサービス設計して、作りなおすのをためらわない

◎ディスカッション
 Q:どうしてサービス作ったの?
 A:エンジニアへのあこがれから、サービスを作った(閑歳さん)
   ものづくりという意味では、Webサービス以外もあるけど?(馬場さん)
   学内のSNSのようなものを作ってて、アクセスが伸びるのが面白かった。(閑歳さん)
   大学でlastfmみたいなものを研究してて。。。(和田さん)
   社会に出てサービスを作るまでの話は?作って稼ごうって思ったのは?(馬場さん)
   あんまりなかった。(閑歳さん)
   すでに起業してた。サービス作ると実績として認められて仕事が入ってきてた。(和田さん)
   直接あった時に反応がもらえるのが楽しい。(和田さん)
 
 Q:どうやって、チームを組み立てたりして開発とかしてきたのか?(馬場さん)
 A:「ボケて」まとめサイトでブレイクしたけど、アクセス数が落ちてない。
   同年代の知人で色々とチームが組めてて楽しい(和田さん)
   はじめは一人でやってて、しかも構想とか。あとロゴだけ最初に作ってた。
   ノマド的に作業してました。(閑歳さん)

 Q:チームがバラバラですが、困らないですか?
 A:今のところ困ってないです。もっと人が増えると困るかもしれないですけど。(閑歳さん)
   それぞれが他に職を持ってるので特に困ってないです(和田さん)
   向き不向きはあるんじゃないかなぁ。10人とかになるとどうなるか不明(閑歳さん)
   GoogleのMLでレスが早ければ問題ないかな。(和田さん)
   あとは、チームが大きくならないように上手く分割してる(?)(ふたりとも)
 Q:ユーザの声の吸い上げ方、サービス改善の判断材料は?
 A:ユーザの声は聞くけど、全部取り込むものではない。
   細かな点はユーザの声を取り込むけど、軸はブレないようにしてる(閑歳さん)
   古参ユーザよりも新しいユーザを取り込むのが大事。(和田さん)
   nanapiのけんすうさん
 Q:品質はどうしてる?
 A:セキュリティは絶対。(閑歳さん)
   品質を気にするってのは難しい。品質を担保できる仕組みを作るとこまでいけるようにしたい。
   投稿される画像はチェックしている。(和田さん)
johtani | 勉強会 | 20:45 | comments(0) | trackbacks(0) | - | - |

JIRAのデータをS3へバックアップ

だいぶ、ブログを書くペースが落ちてきてて、危機感を感じている今日このごろです。。。
今回は、個人的に利用しているJIRAのバックアップについて、ブログに残しておこうかと。

さくらVPSのサーバを借りてJIRAを運用しています。
運用といっても、自分の備忘録のためというのが大半の理由です。
タスクを忘れないように管理するのと合わせて、その作業を行ったときのメモも残したいなと。

バックアップといっても、同じサーバ内に保存しても意味がない+AWSを触ると言いつつ1年以上経ってしまったので、 このへんで本腰を入れるという意味も込めてAWSのS3(ゆくゆくはGlacier)にバックアップを取る仕組みを作りました。
「作りました」というと凄そうですが、Cronとシェルだけで終わりました、なんて便利な世の中。
ということで、以下は作業の備忘録です。

1.AWSのアカウント作成
アカウントを作ってください。ここは特に説明しなくてもいいかと。。。クレジットカードの登録が必要なのが注意点でしょうか。
アカウント作成後の1年間は無料枠と呼ばれる仕組みが用意されており、いろんなことが無料で行えます。
(まだ、S3しか使ってないので、他にももっと使わないと。。。)

2.S3のバケット作成
AWSのアカウントが作成できたら、Amazon S3(Simple Storage Service)のバケットと呼ばれる、データの保存先を作成します。
作成手順はこちらの公式入門ドキュメント(英語)をそのまま行いました。
簡単な手順はこちら
  1. AWS Management Consoleと呼ばれるところから、S3のコンソールにアクセス
  2. 「Create Bucket」ボタンをクリック
  3. 「Bucket Name」を入力し、リージョンを選択したら「Create」ボタンをクリック
以上でバケットが作成されました。これだけです。WebのConsoleからファイルをアップロードすることも可能です。
ただ、今回はさくらVPSから定期的にバックアップしたいのでシェルでアクセスできるようにします。

3.AWSのアクセスキーとシークレットアクセスキーの取得
次に紹介するs3cmdというツールを利用するのに、AWSのアクセスキーとシークレットキーが必要になります。
取得方法はこちらを参考にしましたが、今は日本語のページが用意されています。
セキュリティ証明書(Security Credentials)のページで、「アクセス証明書」というタブで、「新しいアクセスキーを作成する」リンクをクリックしてください。
アクセスキーIDが新しく表示されます。このアクセスキーIDとシークレットアクセスキー(表示リンククリック後に表示される)をメモしておきます。

4.s3cmdのインストール
世の中には便利なものを作ってくれる方がいるもので。
s3cmdと呼ばれるS3へアクセスできるコマンドラインツールが存在します。
ということで、こちらをインストール。これまた、便利なものでインストール手順を書いてくれれてるブログもありました。(あれ、なんか、見たことある名前がURLにはいってるなぁ)
インストールはこちら。
# yum -y --enablerepo epel install s3cmd
インストール後に、先ほど取得したアクセスキーIDを設定します。
$ s3cmd --configure
Access Key: xxxx
Secret Key: xxxx
以上で、s3cmdが使えるようになりました。

5.バックアップスクリプトの作成
つぎは、本題のJIRAのバックアップです。
バックアップ方法はこちらを参考にしました。ちょっと古いみたいですが。
おもなデータは「JIRAのXMLバックアップユーティリティ」にてバックアップするか、「データベースのバックアップツール」を利用する方法があります。
推奨は「データベースのバックアップツール」のようなので、私の場合は「pg_dump」にてJIRAのデータベースをまるごとバックアップすることにしています。
また、データベースには添付ファイルが保存されていないようなので、別途「/var/atlassian/application-data/jira/data」というディレクトリをtarコマンドで圧縮して保存すようにしました。
あとは、pg_dumpの結果と添付ファイルの保存先の圧縮したデータをまとめてディレクトリに保存して圧縮します。
さいごは、S3にアップロードすればおしまいです。
一応、ファイルが連綿と残り続けるのは嫌だなぁということで、ファイル数で世代管理することにもしました。
これまた、ググって見つけてきたサイトを参考にしただけですが。。。
ということで、こんなかんじのスクリプトを日時でcronに設定して動かしてます。

#!/bin/sh
TODAY=`date +%Y%m%d`
BACKUP_HOME="/var/atlassian/backups"
S3SYNC_DIR="/var/atlassian/backups/s3sync"
AGE=7

mkdir -p ${BACKUP_HOME}/${TODAY}/
/usr/bin/pg_dump -U postgres -Fc jiradb > ${BACKUP_HOME}/${TODAY}/jiradb_backup.dump
tar zcvf ${BACKUP_HOME}/${TODAY}/attachment.tgz /var/atlassian/application-data/jira/data
tar zcvf ${S3SYNC_DIR}/jira_backup_${TODAY}.tgz ${BACKUP_HOME}/${TODAY}
rm -rf ${BACKUP_HOME}/${TODAY}
NUM=`ls ${S3SYNC_DIR} | wc -l`
while [ ${NUM} -ge ${AGE} ]
do
  DEL_FILE=`ls -lt ${S3SYNC_DIR} | tail -1 | awk '{print $9}'`
  rm -r ${S3SYNC_DIR}/${DEL_FILE}
  NUM=`ls ${S3SYNC_DIR} | wc -l`
done

s3cmd sync --delete-removed ${S3SYNC_DIR}/* s3://my_jira_backup/s3sync/
そこへんだよとかあれば、ツッコミを。
今のところ、S3へのsyncだけなので、このあとは、月1くらいでGlacierに落とすとかの仕組みも考えるかなぁ。これまた何かあるんだろうけど。
あとは、この応用で家のNASに溜まっている写真をS3経由もしくは直接Glacierにバックアップする仕組みを考える予定です。

johtani | 備忘録 | 23:07 | comments(0) | trackbacks(0) | - | - |

Heroku Meetup #8 TreasureData + Waza Report!! に参加しました。#herokujp

heroku気になってるのに使ってなくて、TDのアカウント作ってデータアップしてない軟弱者ですが、参加して来ました。。。
とりあえず、大事なことです。まずは、上記の書籍を買ってください(って中の人が言ってました。)
イベントページはこちら

総じて、herokuの中のエンジニアの方たちがすごく情熱があって、ユーザと会話をしたがっているという感想だったようで、まだまだ、よくなりそうだなぁと。
私は、ベースがJavaなので、JavaやScala、Playで使ってる方の感想とか聞きたいかなぁ。
あと、herokuとS3の組み合わせだと思うんですが、料金とかはAmazonとheroku両方に別々に払うのかな?とかはちょっと気になりました。
AWSのアカウントも作ってS3にバックアップあげるの作ろうと思って手をつけてない軟弱者ですが。。。
今月は余裕がありそうなので、TDとか触ってみようと思います。。。

懇親会ではTDのmuga-sanとお話できて、いくつか気になってた話ができたのでスッキリしました。
あと、株式会社サムライズムの名刺頂きました。写真載せろって言われたけど、また今度w

最後に、大事なことです。まずは、上記の書籍を買ってください(って中の人が言ってました。)

以下は、いつものようなメモです。最後の方はちょっとくたばってたのでメモがおざなりになってます、すみません。

日時:2013年04月04日(木) 18時30分 - 21時00分
場所:日本創生ビレッジ 事業開発支援オフィス 東京21cクラブ コラボレーションスペース


◯Ayumu Aizawa(Heroku, Inc.)
 ・■
  PostgreSQLが9.2になりました。
 ・◆
  メモリが2倍。βテスタ向けにスケールアップ。
  JavaとかJavaとかJavaとかデプロイしてもいいよね。
  けど、メモリ2xは価格も2x!
 ・●
  Heroku OAuthを提供。Experimentalだけど。
  heroku-bouncer使うとOAuthが楽になる。

◯Treasure Data and heroku
 Masahiro Nakagawa(TreasureData)
 ・会社紹介
 ・フロントエンド部分の担当(fluentd)
 ・1500億レコード!?
 ・投資家の中にHerokuの方がいる。
 ・ターゲットは?
  Cloud + Big Dataが対象
  Hadoopは立ち上げるのはいいんだけどメンテナンスコストが。
  Hadoopの処理基板を提供
 ・Hadoop生ではなく、Plazmaを使っていたりする。
 ・Viki
  herokuにtd-agent入れて、TDにデータ送って、Postgresに書き出して使ってる。
 ・TDはどうやってheroku使ってるの?
  Webコンソール。
   http://console.treasure-data.com
  Webサイトは大体heroku
   fluentdとかも
 ・herokuのaddonとしてtd-agentを提供してる。
 ・STDOUTからTDにデータ送るのもできるよと。


◯Waza Report
 ◯吉田雄哉さん(co-meeting)
  ・まずは、co-meetingの紹介。
   1文字ずつ送信してるよと
  ・Chief Talk Officerらしいw
  ・MongoDB使ってるって言ったら、herokuのPostgreSQLの人と話して、鼻で笑われたw
  ・すごく熱意のある人達がエンジニアとして働いてる
  ・ユーザの声をきちんと聞いてくれる体制ができてるミーティングだった。
  ・「クラウド」って単語を聞いてない。勉強会のレベルもすごい。

 ◯山本裕介さん(株式会社サムライズム)
  ・ニッチなブログ書いてます。
  ・Java屋が見るWaza
   Tシャツプレゼント!
  ・OSS好きが多い。
   Java/Scala系の話が少なかった。Scala界隈では人気みたい

 ◯岡村純一さん(株式会社シャノン)
  ・スライド1枚も作らずに喋る人とかいました。
   (すごい。。。)
  ・Django

   Playに似てて面白いかもと
  ・Ruby2.0
   Matzが喋ってたとか
  ・クロージングはビールが出てきてた。
   交流パーティみたいになってた。CROSSがそれに似てますね。日本でやってるイベント

 ◯小西俊司さん(株式会社フレクト)
  ・バックエンドの性能とかを収集して見ることができるツールがあるらしい。
  ・クエリを登録しておくと監視ができるツールとか。(TDとかぶってる?)
  ・やっぱり、情熱的だし、OSS好きでオープンな感じのエンジニアが多い。


◯Heroku LT
 無慈悲なLTです。3分たったらケーブル引っこ抜きます。
 (最後はくたばっててあまり聞けてない。。。)

 ◯山本 裕介(株式会社サムライズム)
  ・herokuでJava7!
   Java6終わってますからherokuも移行してね!
 ◯竹野 淳(Grow!)
  ・BoxTo?
  ・コラボレーター募集!
 ◯小西 俊司(株式会社フレクト)
  ・ExcelのテンプレートをアップロードしてGETでパラメータわたせばいいよみたいなの作ってる。
 ◯大久保英樹(Job-Hub)
  ・CarrierWaveとかの注意点
johtani | 勉強会 | 11:20 | comments(0) | trackbacks(0) | - | - |

第10回Solr勉強会を主催しました。#SolrJP

記念すべき!?第10回のSolr勉強会です。

発表者が無事あつまり(本当にありがとうございました!)、今回も盛況な感じでほぼ満員でした。
ツイートのおかげか、キャンセル処理もちゃんと行なってもらえて助かりました。
開場直後にドタバタしてしまい、すみませんでした。。。

とりあえず、第一報の記事をアップしておきます。
懇親会での話とか感想はまたあとで。

関口さんの資料は実は、前もって見たことがある資料でした。
最初の発表にしては、少しむずかしいと思った方もいるかなぁと。
ただ、類義語の辞書は結構作るのが大変だし、探しても出てこないものなので、面白い話だったんではないかなぁと。
「ミスチル」はできないけど、「マツケン」ができるのは読みがあるからとかなんですかねぇ?って質問するの忘れてた。

尾形さんの話は結構、みんな通ってきた道かもなぁと思いました。他の方も同じ経験してるんじゃないかなぁと。
ただ、一人でやるのはすごいですよね。検索って結構人数が割かれてない場合が多いのかなぁ。
あんまり使われていないというのが少し悲しい話でしたが。。。
サーバを要求すれば結構なスペックが用意してもらえるのはうらやましい限りですねぇ。
スキーマ変更については、レプリケーション機能を使うと追加などならうまくいくんじゃないでしょうか。(そんなツイートもありましたよ。togetter読み返すと出てきます。)
フィールド名を変更しないで型を変更するなどしたらおかしくなると思いますが。

野口さんの話はなかなかチャレンジングでいいなぁと思いました。よく挫けずに頑張られているなぁとw
試行錯誤した仮定も発表してもらえると同じ轍を踏んだ人が助かると思います。
大きな企業で本格的に横断的な社内検索が出来る仕組みが出来上がっているって話はなかなかきかないかなと。
どうしても、社内検索とかお金が出なくて手を付けられないといいう悲しい話が多いので、こういう話は共有したい情シスの方がいっぱいいるんじゃないかなぁと。
ManifoldCFが結構地雷を多く含んでいるのは大変そうですね。。。
SolrにもTikaが入っていたりしますが、個人的にはTikaがやるべき処理は前処理と思っているので、Solrとは別の場所でやりたいとか考えていたりします。
ManifoldCFがその辺りまでやってくれるかまではちゃんと調べてないんですが。
Solrは検索だけに注力させることで、役割を分割できるので、性能の対処とかを行うのが楽になるんじゃないかなぁとか。
ManifoldCFで困ってる人は他にもいるようなので、ジャンジャン使って、どんどんチケット上げて貢献してもらうといいかと。
また、定期的に発表してもらうと面白そうだなぁと。

弘瀬さんの話は結構興味ある方がいたんじゃないかなと。
SolrCloudは壮大だなぁと思いつつ、手を出しづらいと思ってる方が多いと思います。
実際のサービスに投入して試行錯誤された話を細かな数値も上げて発表してもらえるのは検証をやる方の助けになります。
残念ながら、私もSolrCloudは興味有りつつちゃんと追っかけてないので、途中でnodeとshardとcoreの関係がわからなくなってしまいましたので。。。
もう一度勉強して、スライドを見たいと思います。。。
分散検索(1つのインデックスが複数のcoreやshardに分割された状態)が絡んでくると、複数台の検索の性能のうち、一番遅い性能が最終的な検索性能に響いてくるので、検索リクエストの偏りとかも影響が出たりするかもしれないなぁと。
そういった意味でも試行回数を3以上で計測した結果で再度発表してもらうと面白そう!(なんか、下心見え見えですがw)

前回、今回も感じたのですが、もう少し質問をしてもらえると発表された方も励みになるかなぁと思いました。
質問しにくい雰囲気になってるのでしょうか?参加者が結構いるから質問しにくく感じたりするのでしょうか?
そのあたりをもう少しうまくやれるようになにかコメントもらえると嬉しいかなぁと。
運営で気になった点などもコメントやツイートをいただけると今後の改善にも役立てますので気兼ねなく連絡いただけると助かります。
開場がドタバタしすぎとか、ハッシュタグがわからなかったとか。

今回は思ったよりも懇親会に残る方が少なめでした。
コミッターの方(LuceneやManifoldCFとかlucene-gosenとか)が複数いたり、Solrを結構触ってる方がいたりと面白い話が聞けそうだったのですが。。。
Kuromojiのユーザ辞書の改良点をチケットにあげるって約束したのでやらないとなぁ。
早く帰るつもりだったのに気づいたら23時でしたwやっぱり色々と話ができるのが楽しくて。。。
駅前の機動隊とかびっくりしながら帰りました。
今回、お話ができなかった方もいらっしゃるかと思いますが、気兼ねなく、ツイートしてもらったり、声をかけていただければと。

あと、常に発表していただける方は歓迎しておりますので、連絡いただけると非常に助かります!
こんな話が聞きたいなどでもいいかと思いますので、連絡いただければと。

#SolrJPもtogetterにまとめてもらいました。ありがとうございます。
以下は、いつものメモになります。


日時:2013/03/26 19:00 to 21:00
場所:VOYAGE GROUP 会議室

1. 株式会社 ロンウイット 関口 宏司さん
  タイトル:Wikipediaからの類義語知識の自動獲得について
 発表資料はこちら
 ・「辞書型コーパス」という単語は造語かもしれません。
 ・なんでこんなことを?
  →類義語辞書を自動生成したいから。
 ・自賠責保険、自動車賠償責任保険を例にSynonymFilterの説明。
 ・Wikipediaを入力として、類義語辞書を作成するときにLuceneのインデックスを活用してる。
 ・類義語候補の見つけ方
  いくつかヒューリスティクスな処理とかも入れてます。
  日本語Wikipedia固有なもの。
 ・実際に導出された単語も載ってる。
  FTPなども導出で来てる。
  丸ビルとかも。
 ・導出できなかったものもあります。
  「十六進法」が「十進法」になってる
  「ミスチル」も無理。
 ・ミスもあるけど、類義語が存在しない場合になんとなく、使う辞書としては採用できるのでは?
  類義語検索対象のブーストを小さくするなどをすれば役に立つ

 Q:類似度にしきい値を用意したりしてますか?
 A:min.scoreという値を用意し、足切りをしている。
 Q:ベクトルを作るという話があったが、品詞でフィルタリングとかしてる?
 A:名詞に限って処理してます。名詞に限らなくてもいいかも。。。(若干聴き逃しました)
   重みの高いn件をベクトルの対象にしてます。

2. グリー株式会社 尾形 暢俊さん
  タイトル:GREEにおける全文検索の歴史
 発表資料はこちら
 ・GREEさん、検索はないがしろにされてる。。。
  一人でつくって、一人でメンテナンスしてる。
 ・GREEの検索は右上の検索ボックスが
 ・2007年はSennaつかってました。
  Tritonnに移行。2009年くらいまで。
  やっぱり安定しない+MySQLのバージョンアップしたいけど、追従できない
 ・2012年初頭までLuceneでやってた。(結構古い)
  フラグメントが発生してOptimizeすると、検索サーバが使えなくなる。。。
  検索しにくるサーバが1000台いるので、Optimizeかけるときに、1000台のサーバの設定を書き換えるとかしてた。。。
 ・現在まではSolrをつかってる。
  Luceneのバージョンも古かったので100倍くらい速くなった。
 ・Solr本が必須ですよ!!!
 ・Lucene+Tomcatから移行。
  移行に気をつける点として、I/FをそのままSolrに置き換えると。
  Solr返却のXMLをカスタマイズしたり、クエリをSolr向けに書き換えたり。
  あと、メンテナンスが楽になるように。
  40数台のインデックスサーバがあると。
  一人でメンテナンスしてるから、楽になる方法が重要
 ・レプリケーションで、Optimizeの影響が出ないように。
  キューをつかって、マスタに登録して、スレーブにレプリカを配布
 ・スキーマが7つ
  あんまり使われてなくてかなしい。。。
 ・負荷のグラフもありました。
 ・RangeQueryを結構使う。
 ・作りこんだ部分
  インデックスのMasterへ分散させる処理とか
  クエリの変換とか人力監視処理とかNGワードとか
  サーバ監視のための仕組み
 ・今でも大変なこと
  スキーマ変更が大変
  スレーブをマスタに昇格とかが手動
 ・今後改善したいこと
  精度を上げたい
  辞書を使ってみたいけど、各国語対応
  あと、自動化とか


3. ソフトバンクBB株式会社 野口 勝義さん
  タイトル:企業内の大規模ファイルサーバ検索事例
 ・情シスの企画版?という立場のかた。
 ・売上に貢献したいのでクラウドサービスとして検索をオプションとして立ち上げてみた!
 ・Solr+ManifoldCFで作ってみたよと
 ・なんでSolr?
  OSSだし、機能が充実
 ・なんでManifoldCF?
  Active Directory連携が使いたかったと。
  社内検索ってやっぱりアクセス権がうるさいので。
 ・ManifoldCFの説明はロンウイットさんの画像を使わせてもらいましたw
 ・ファイルサーバが、70TB。。。

 ・困ったこと。
  ・その1
   ・クローラージョブの構成の最適化どうする?
   ・マルチコアで、クローラーとファイルサーバを1対1の構成にしてみた。
  ・その2
   ・ファイル数が増えるとまた問題が。。。
   ・ファイルサイズが大きい→Heapが足りないエラーとか、MCFのタイムアウトとか。。。
    ファイルサイズのリミットを設けてみた。
    mp4とかでエラーがでるとか。既知のエラーでしたとか。
    ulimitがたりないとか。
    MCFの稀に出るバグとか。。。
    ファイルサーバの不良ブロックとか。。。
  ・その3
   ・クロールに時間がかかる
   ・MySQLでスロークエリとか
    MySQLよく知らないとか言われながらコミッターに対応してもらうなど。
    SSDつかうとか考え中
   ・フルクロールで1週間
    差分でも1日強かかる。
    ManifoldCFだけで対応できないから、ファイルの特徴を元に
    →ManifoldCFを経由しないリアルタイムインデックス更新のAPIを経由してMasterじゃなくて、更新かけると。(特定のクライアントからの方法)
  ・その4
   ・本文データをstored=falseに
    けど、ハイライトできないから、どうにかしたい
  ・ユーザの要望
   ・もしかして検索
    類義語?じゃないよねぇ。テザリング、tezaringuとか
    フロント側で頑張った。(Solr諦めました)
   ・検索スコアも弄りたいとか
    外部データでブーストとかもしたい。External Fieldとか使うといいのでは?とか。

4. 株式会社サイバーエージェント 弘瀬 健さん
  タイトル:SolrCloudの導入事例
 発表資料はこちら
  ・Webエンジニアだったのに、検索エンジニアに!
  ・SolrCloudもサービスインしてると。
  ・SolrCloud概要
   4.0以降の機能とか。
  ・SolrCloudの構成要素
   概念的なもの。Collection、Shard
   物理的なもの。Node、Core
  ・ Simplogってサービスに導入済み。
   ZooKeeperが3台、6Shard、3nodeという形式
  ・性能
   平均レスポンスタイム50msec
    思ったより出てないので、調べてみた。node数とかshard数を変えてみて調べてみた(まだ、模索中。)
  ・色々テストケース試したけど、試行回数が1回だけです。
   詳細なデータが出てるのありがたい(全部はまだ理解できてないですw)
  ・検証まとめ
   ノード当たりのcore数が少ないほうが検索、更新性能がいい
   1コレクション当たりのshard数が少ないほうが検索性能がいい
  ・まとめ
   ・SolrCloudの利点
    クライアントが色々意識しなくていいのがうれしい。
   ・SolrCloudの注意点
    shardの分割機能がまだないので、大変。
    コレクション情報が壊れると検索更新できないとか。4.0だとバグが有った
   ・性能的には素のSolrのほうがいいよと。


johtani | 勉強会 | 21:16 | comments(0) | trackbacks(0) | - | - |

elasticsearch-analysis-kuromojiでユーザ辞書の利用方法

なんか、とても久しぶりにイベント参加メモ以外の投稿です。
elastic searchのMLを見てたら、KuromojiのAnalyzerを使うときにユーザ辞書使うのどうするの?という投稿を見かけました。

Kuromojiのユーザ辞書にもちょうど興味があったり、elasticsearchもちょっとずつ触りたかったのでちょっと試してみました。(返信もしてみましたが、テキトーな英語です。。。)

elasticsearch-kuromoji-pluginのインストールなどはElasticSearch で kuromoji を使う (ES 0.90.Beta1 + kuromoji 1.2.0篇)
を参考にしてください。
私もこちらに記述のある組み合わせ(elasticsearch-0.90.0Beta1 + elasticsearch-analysis-kuromoji/1.2.0)を利用しました。
KuromojiのAnalyzerはデフォルトで「kuromoji」として登録済みですが、こちらはユーザ辞書の指定がありません。
ということで、「kuromoji_user_dict」というユーザ辞書指定をしたtokenizerと、それと使う「my_analyzer」というanalyzerを登録したIndexを作成します。
定義する前に、「userdict_ja.txt」を用意して、elasticsearch-0.90.0Beta1/config/ディレクトリに配置しておきます。
(以下のサンプルでは、SOLE_HOME/example/solr/collection1/conf/lang/userdict_ja.txtをコピーして使いました)
$ curl -XPUT 'http://localhost:9200/kuromoji_sample/' -d'
{
    "index":{
        "analysis":{
            "tokenizer" : {
                "kuromoji_user_dict" : {
                   "type":"kuromoji_tokenizer",
                   "user_dictionary":"userdict_ja.txt"
                }
            },
            "analyzer" : {
                "my_analyzer" : {
                    "type" : "custom",
                    "tokenizer" : "kuromoji_user_dict"
                }
            }
            
        }
    }
}
'
「user_dictionary」というのがユーザ辞書の定義ファイルになります。
注意点としては、6行目で指定した名前「kuromoji_user_dict」を14行目の「tokenizer」に指定しないとちゃんと動かないという点でしょうか。

上記で指定したAnalyzerを利用して「朝青龍」という単語をを解析してみます。
$ curl -XGET 'http://localhost:9200/kuromoji_sample/_analyze?analyzer=my_analyzer&pretty' -d '朝青龍'
{
 "tokens" : [ {
   "token" : "朝青龍",
   "start_offset" : 0,
   "end_offset" : 3,
   "type" : "word",
   "position" : 1
 } ]
「朝青龍」という単語がユーザ辞書に登録されているので、1単語として出力されます。
ちなみに、デフォルトの「kuromoji」のanalyzerを指定すると以下の様な出力です。
$ curl -XGET 'http://localhost:9200/kuromoji_sample/_analyze?analyzer=kuromoji&pretty' -d '朝青龍'
{
 "tokens" : [ {
   "token" : "朝",
   "start_offset" : 0,
   "end_offset" : 1,
   "type" : "word",
   "position" : 1
 }, {
   "token" : "青龍",
   "start_offset" : 1,
   "end_offset" : 3,
   "type" : "word",
   "position" : 2
 } ]
とまぁ、こんなかんじです。
ユーザ辞書を書き換えたあとは「close/open」しないと読み込めないのかなぁ?そのへんはまたあとで調べようかな。

ちなみ、以下のページを参考にさせてもらいました。
elasticsearch kuromoji plugin - natural days
ElasticSearch で kuromoji を使う (ES 0.90.Beta1 + kuromoji 1.2.0篇)
johtani | elasticsearch | 16:43 | comments(0) | trackbacks(0) | - | - |
2/25PAGES | << >> |

04
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--
PR
RECOMMEND
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus) (JUGEMレビュー »)
大谷 純,阿部 慎一朗,大須賀 稔,北野 太郎,鈴木 教嗣,平賀 一昭
Solr 4系に対応した改訂版を出しました!興味ある方はぜひ。
RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
RECOMMEND
RECENT COMMENT
  • ポモドーロ回してます。(ポモドーロテクニック入門読みました)
    おーたに (05/07)
  • Lucene 4.3.0のChangesにあるChanges in backwards compatibility policyが気になったので訳してみた。
    おーたに (04/26)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/04)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    m_nori (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    ho4kawa (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    おーたに (09/03)
  • メインMBAをMountain Lionにアップデート(いろいろ確認中)
    まろか (09/03)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    おーたに (08/07)
  • Lucene/Solr 3.6.0リリース / 「Apache Solr入門」のサンプルのKuromojiとlucene-gosen対応(1章)
    moco (08/07)
RECENT TRACKBACK
MOBILE
qrcode
OTHERS