2014.09.21

Solrでグルーピング検索


現場でよくグループ検索がーとかって話になったりするのですが、Apache Solr入門 を読んでたら
“グルーピング検索”っていうのね、と。
 
Solr WikiのFieldCollapsingを読むと↓のように書いてあって、
・Field Collapsing

Field Collapsing collapses a group of results with the same field value down to a single (or fixed number) of entries. For example, most search engines such as Google collapse on site so only one or two entries are shown, along with a link to click to see more results from that site
 
(篠原訳)
Field Collapsingは同じフィールドバリューを持つものを1つ(もしくは固定数)にまとめるもの。
Google検索みたいに1個か2個のエントリだけ表示してもっと結果を見たければリンクを押すヤツ。

#Googleみたいに〜って書いてあるけど、最近Googleの検索って+ボタン出てこなくて
#更に検索窓付いたりしてるーとかって思ったりもします。。

 
・Result Grouping

Result Grouping groups documents with a common field value into groups, returning the top documents per group, and the top groups based on what documents are in the groups. One example is a search at Best Buy for a common term such as DVD, that shows the top 3 results for each category (“TVs & Video”,”Movies”,”Computers”, etc)
 
(篠原訳)
Result Groupingは共通するフィールドバリューをドキュメントをグループにまとめて、グループのTOPドキュメントを返す。で、TOPグループはグループ内のドキュメントをベースにする、と。
例えば、”DVD”に関するBest Buyといった場合に、それぞれのカテゴリーごとに3つずつ表示する的な。(カテゴリーは”TVs & Video”,”Movies”,”Computers”とか)
#んー、、、英語難しす…汗

 
と、まぁ上記のようなことが実現出来るのね、と。
 
グルーピング検索するにはクエリパラメータでgroup=trueにしてあげて、
フィールドの指定、グループ化するためのクエリ文字列(範囲とか)、何件表示するかとかそういうの。
んま、文字でツラツラ書いても仕方ないので、Apache Solr入門に沿ってやってみます。
 
自分がニュースまとめサイトみたいのを作るとしたらーって感じで、
以下のようなスキーマを考えてみます。idは特にアレで、ジャンルと、どのメディアと、それがどれだけFBでLikeされてるか的な、で最後にURL。

id,genre,media,like,url
001,sports,yahoo,10,http://headlines.yahoo.co.jp/hl?a=20140921-00000521-sanspo-socc
002,music,ameba,21,http://amebreak.ameba.jp/news/2014/09/005158.html
003,sports,nikkansports,33,http://www.nikkansports.com/soccer/japan/asiangames/2014/news/f-sc-tp0-20140921-1370597.html
004,music,yahoo,9,http://headlines.yahoo.co.jp/hl?a=20140921-00053963-lisn-musi
005,technology,huffingtonpost,87,http://www.huffingtonpost.jp/techcrunch-japan/iphone6_b_5855744.html
006,fashion,fashion-press,43,http://www.fashion-press.net/news/12132
007,business,yahoo,32,http://news.yahoo.co.jp/pickup/6132018
008,technology,huffingtonpost,29,http://www.huffingtonpost.jp/2014/09/21/iphone-small-hand-case_n_5856400.html

schema.xml的にはデフォルトのアレからソレっぽいところを消して↓に入れ替える感じ。

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="genre" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="media" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="like" type="long" indexed="true" stored="true" required="true" multiValued="false" />
<field name="url" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />

 
で、ローカルに入れたSolrに食わせてみます。

 
グループ化した検索をしてみます。
ジャンルがtechnologyかsportsでメディアでグループ化します。
#なんか、もうちょい、ちゃんと考えたデータ作るべきでしたね。。w

 
んま↓こんな感じでちゃんとグループ化されてますよ、と。
デフォルトの表示件数は1なのでハフィントン・ポストの記事は2つあっても、1つしか表示されません的な。
ソートはLikeの数なので多い方だけが出ておりやす。

{
  "responseHeader": {
    "status": 0,
    "QTime": 4,
    "params": {
      "q": "genre:(sports or technology)",
      "indent": "true",
      "fl": "id,like,url",
      "sort": "like desc",
      "wt": "json",
      "group.field": "media",
      "group": "true",
      "_": "1411290295136"
    }
  },
  "grouped": {
    "media": {
      "matches": 4,
      "groups": [
        {
          "groupValue": "huffingtonpost",
          "doclist": {
            "numFound": 2,
            "start": 0,
            "docs": [
              {
                "id": "005",
                "like": 87,
                "url": "http://www.huffingtonpost.jp/techcrunch-japan/iphone6_b_5855744.html"
              }
            ]
          }
        },
        {
          "groupValue": "nikkansports",
          "doclist": {
            "numFound": 1,
            "start": 0,
            "docs": [
              {
                "id": "003",
                "like": 33,
                "url": "http://www.nikkansports.com/soccer/japan/asiangames/2014/news/f-sc-tp0-20140921-1370597.html"
              }
            ]
          }
        },
        {
          "groupValue": "yahoo",
          "doclist": {
            "numFound": 1,
            "start": 0,
            "docs": [
              {
                "id": "001",
                "like": 10,
                "url": "http://headlines.yahoo.co.jp/hl?a=20140921-00000521-sanspo-socc"
              }
            ]
          }
        }
      ]
    }
  }
}

 
上記の説明がイマイチで良くわからないという方がいらっしゃいましたら、
↓の購入をオススメします。笑

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
大谷 純 阿部 慎一朗 大須賀 稔 北野 太郎 鈴木 教嗣 平賀 一昭
技術評論社
売り上げランキング: 179,862

台北にいってきました Sep 2014


昨年、上海の友達の家に遊びにいったのですが、
その友達が台北に転勤になったということで再びお邪魔しにいってきました:)
 
■ 羽田⇒松山空港
 
台北は2つ空港があって、羽田的な感じで市街地にある松山空港が便利よ、と。
ANAの20000マイルで行けて、ちょうどそれくらいのマイルが貯まってたんだけど、
キャンセル待ちみたいなステータスだったので普通に購入。往復で53120円。
先日出張でスカイマークで福岡行った時は45000円くらいだったからリーズナブルなものです。
 
最近は渡航先でSIMカードとか面倒なので大体Wifiをレンタルしています。
グローバルWIFIの羽田空港のカウンターの場所はちょっと分かりにくくて
京急線の方にあります。

 
なんかパンダな飛行機みたい。

 
機内食は和風な感じのにしてみましたよ、と。

 
スッゲー好きな↓ソーシャルネットワークがあったので、みてたら途中で寝ちゃって、

ソーシャル・ネットワーク 【デラックス・コレクターズ・エディション】(2枚組) [DVD]
ソニー・ピクチャーズエンタテインメント (2011-05-25)
売り上げランキング: 43,875

 
気付いたら着陸してました。こんだけ近いとあんまり海外って感じしないかも。

 
パンダな飛行機の全体像。

 
 
■ Day1(Fri)
 
友達の嫁に迎えにきてもらって(ホントいつもサーセンw)、地下鉄で西門ってところ。
渋谷とか原宿って感じな街にある友達の家で荷物置かせてもらってからカルフール連れてってもらって。
スーパーとかいくと、その国の人たちの暮らしが垣間見れるような気がしてとても好きです。
 
某ゴージャスマンション。入り口は係の人がガッツリ案内してくれる感じ。セキュリティもしっかりしてそう。

 
友人宅からみたサンセット。

 
西門の街は夜になっても若い人でごった返してました。

 
夜景もゴージャスでございました。こんな部屋、東京じゃなかなか住めないすよね。。

 
住民は屋上にも出ることができて(パーティースペースみたいなのも併設されてる)、
台北101とかも見ることができます。

 
ジムとかプールとかKTV(カラオケ)とかもあって、自分も台湾に駐在とかなったらココ住みたいス。。
 
晩御飯は易鼎というお店に連れてってもらいました。地下鉄の国父記念館駅から近い感じ。
店内のデッカイ水槽におびただしい程エビが泳いでいましたが、いろんなバリエーションがあって、
これでもかって程エビ食いました。エビ好きにはオススメ。手ベトベトになるけどw

 
 
Day2(Sat)
 
地下鉄に乗って雙連の朝市に連れてってもらいました。ローカルな人たちでごった返してて活気ある感じ。
炒めものとか揚げ物とか試食品摘んでみたけど、うまかったなー。

 
にしても、どこいっても日本のキャラクターみかけます。

 
でもって迪化街という乾物屋がたくさん軒を連ねるところ。
ガッツリまわってドライマンゴーをおみやげに買いました。
台湾産のマンゴーで使ってる砂糖の量が少ないとのこと。

 
王徳傅ってゴージャスなとこでお茶買ったりしつつ、
ランチはエビワンタン麺。うまかったなー。さっぱりしてるけど量とか大満足。

そして、このお店、後からググったら↓のブログにちょー詳しく書かれていましたー
http://clubw.sakura.ne.jp/xoops/modules/weblogD3/details.php?blog_id=1419
 
昼からは frog in a sock ってコミュニティの、プールパーティに行ってみました。
 
今年一番夏を感じたカモ的な。

 
13時まではビールただで、14時まではサングリアが100元(300円くらい)とかって感じでガンガン飲みます。

 
時間が経つとともに段々人が増えてきて。
タトゥー入ってる人とかいっぱいいたけど、だからどうのとかってないし、
プールの中でガッツリはしゃいでも監視員さんはそんなに厳しくない感じで。
こういうユルさって東京にはないので、なんかイイなぁと。

 
90年代なHIPHOPとかかかると、いくつになってもはしゃいでしまうもので。

 
いやー、それにしてもイイわぁーこの雰囲気。

 
夜遅くなっても多くの人で賑わってました。

 
モデルな人たちがいたので一緒に写真とってもらったりもしましたよ、と。笑

 
タクシーで移動中のモニターでPVが流れてて(音も出てた)、
韓流な人たちのバンドが日本語で歌ってるヤツに中国語字幕がついてたりして、なんかカオス…

 
西門のNIKEのお店のところはJordanな感じになってて、

 
歴代のがぶら下がっててナイスな雰囲気でした。

 
そのままブラブラっと歩いて夜市にいってみました。

 
観光客少なめでローカル感のある。

 
鶏肉うまかった!

 
にしても、どこいってもLINEでした。

 
 
■ Day3(Sun)
 
阜杭豆漿っていう有名なお店に朝ごはんを食べにいきました。
ついたらガッツリ並んでて30分くらい並ぶ感じ。

 
店内はフードコート風になってて、

 
その場で作ってます。(だから美味しいのね〜)

 
で、ダシのきいた豆乳スープとパン。食った食った。うまかった。

 
有名な台北101へ。

 
昔の台湾の古い家とか残されてる的なところ。お世話になった友達夫婦の自然な感じの一枚。

 
ギネスなエレベーター登って上に。

 
いやはや壮大な景色でございました。台北は開発の余地って点ではあんまりなさそうですね。。

 
屋上からズコン、と。

 
免震システム。この玉がよしなに吸収してくれるそうで。

 
台北101のまわりは買い物スポットとかたくさんあって、おみやげ買ったりしました。
#この辺が夜はギロッポン的な感じになるのはお昼からはあんまり想像つきませんでしたが。。
 
西門に戻って軽めにランチ。阿宗麺線って麺はソーメンみたいな感じでスープがトロっとしてるヤツ。

 
サクっと買ってその辺で食べるのにナイスです。

 
一息ついてから中正紀念堂へ。

 
デデンと広くてナイスなところ。

 
蒋介石の銅像。警備の兵隊さんの交代セレモニーは物凄い人でした。

 
ちびっこ警備さんがいたので一枚パシャリ、と。

 
蒋介石の諸々紹介展示エリアにはイカした車がドーンと。

 
そんなこんなでイイ感じに観光してから、夜はローカルな雰囲気に満ち溢れた忠南飯店へ。

 
事前に何を注文するか伝えて外でしばし待ちます。
回転が早いので結構並ぶかと思ったけど、割りとサクっと入れました。

 
何食っても美味かったな〜ホント。

 
ガッツリ辛くしてくれってお願いしたけど、全然食えちゃう感じ。
こういうとこ来たかっただよね、と。

 
西門に戻って入ったコーヒー屋さんでもLINEのアカウントが的な。

 
西門には何やらハレンチなお店があったり、タトゥー入れてるところを間近で見れるタトゥー通りとか。
#若者たちは結構カジュアルにタトゥー入れてる感ある気がしました。。

 
次の日は月曜日だけど、中秋の名月は台湾で祝日って事で夜遊びするべ、と。
行かなかったけどHIVEってクラブは物凄い人でごった返してました。

 
MYSTというクラブで。エントランスフィー払って2枚のドリチケ。
ビール1杯日本円で600円ちょっとってところ。

 
なかなかゴージャスな箱でしたよ、と。

 
みんなとてもフレンドリーで結構英語も通じてガバガバ飲んでとても楽しかったです。

 
DJ Mykalはブースから飛び出て暴れたり、テキーラのボトル持って人の口に注いで回ったりとか。
プレイ後に、スゲー良かったよ!って声かけにいったら、腰の低い感じの人でした。笑

 
にしても、VIPっていうかソファー席は物凄い金額を会計してる人たちがいました。
上海みたいにボトル注文すると花火がブワーみたいな感じじゃないけど、
やっぱり金こそがモノを言う世界なんだな、と。。

 
せっかくなので他の箱にも行ってみました。

 
中秋の名月の時は台湾では軒先で家族でBBQをやるのが風習で、
そこら中でBBQやってましたが、クラブの前でもお約束的にw

 
ココは時間切れで入れず。

 
クラブ終わった後に外でダラッダラする雰囲気とても好きなのですが、
台北ではとてもポピュラーな過ごし方なのですかね、、、。
にしても、誰とでも仲良くなれちゃいそうな雰囲気が他の国とは違う印象。

 
思いっきり酔いつぶれても大丈夫なくらい平和ってことなのかな、と。。

 
日本から台北のフェスに参加しにきてたBefore My Life Failsというバンドの人たちと仲良くなったりして。

 
朝まで台北ナイトを満喫させていただきました(´▽`)ノ
 
 
■ Day4(Mon)
 
遅めに起きたらガッツリ二日酔いでしたよ、と。笑
 
ラストランチは丸林魯肉飯という有名店で魯肉飯。台湾といったら、、的なやつ。

 
とにかく外がくそ暑くてしばしクールダウン。

 
シータクでサクッと空港へ。300円くらい。

 
帰りのフライトも快適でございました。

 
 
漢字が難しいヤツだーとか、エスカレーター待つの右側だーとか、
ちょいちょい発見がありつつ、上海より全然のほほんとした感じで良いところでした。
結構英語も通じたし。
 

台湾 お土産 台湾ビール ゴールドメタル 6本セット 台湾土産 海外土産
海外おみやげ宅配便 ギフトランド
売り上げランキング: 32,510

2014.09.01

JACMARCS(ジャックマルクス)のアトマイザーを買ってみました


齢34にもなると、オイニーとか色々と気になるもので、最近は香水とか家出る前にシュシュっとやることが多いのですが、
丸一日もっている感はないし、かと言って持ち歩くのもなんだかね、と。小さいボトルに移すのもめんどくさいし。
 
と思ってたら、下から吸い出して、上からシュッシュできるアトマイザーが存在すると。
渋谷のドンキに見に行ったら2000円で売ってたので買ってみました。

 
女性用っぽいところがありますが、、(艶メキじゃなくても。。)

 
インストラクション的にはシンプルっぽいです。

 
香水のシュシュってやるところ外して、

 
ハメ込んでシュコシュコやると、、

 
いい感じに入りましたとさ。

 
下をグリって回すとシュシュってやるところが出てきて普通に使えます。

 
漏れても安心なように(?)ケースがついてました。

 
特許をお取りになったようでガッツリとアピールでございます。

 
んま、移すだけ移して、今日は持ってくるの忘れましたが…笑

2014.08.20

Amazon CloudSearchのfull IAM Integrationについて


先日AWSのSecurity Blogで↓のPostがありました。
Amazon CloudSearch: Now with More Granular Access Control for Domains
日本語でいうと『ドメインに対して、もっときめ細やかなアクセス制御が出来るようになりました』といったところ。
内容的には、今までIPアドレスによる制御だったところも含めて、全ての動作をIAMと連携させて制御出来るようになりましたよ〜、と。
 
リリースノートはこちら↓
・CloudSearchのリリースノート
http://aws.amazon.com/releasenotes/Amazon-CloudSearch/1871900091956327
・CloudSearchに関するSDKのリリースノート
http://aws.amazon.com/releasenotes/JavaScript/9496928936129263
http://aws.amazon.com/releasenotes/Java/2138336306646950
http://aws.amazon.com/releasenotes/.NET/3056128390492459
http://aws.amazon.com/releasenotes/Ruby/4398926695262630
 
 
ということで、感触を掴むために実際に試してみたいと思います。
 
 
■ 検索ドメインの作成
 
検索ドメインを作っていくところでアクセス制御のところの見た目がだいぶ変わっています。

 
今まではIPによる制御だったdocument(インデクシング)とsearch(検索)のところが
Search and Suggester service: Allow all. Document Service: Account owner only.
にしてみると↓のようになりました。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "*"
        ]
      },
      "Action": [
        "cloudsearch:search",
        "cloudsearch:suggest"
      ]
    }
  ]
}

 
 
■ 検索してみる
 
サンプルの映画のデータを元にjamesで検索してみます。
 
・Management Consoleから叩くとガッツリ返ってきます。

 
・URLをブラウザから入力すると、、anonymousはだーめよ、と。

 
・CLI経由で叩いてみます⇒イイ感じです(´▽`)

$ aws cloudsearchdomain search --endpoint-url https://search-access-wjysaokxvaj3fil3hkw4vbmdi4.ap-northeast-1.cloudsearch.amazonaws.com/ --search-query james

{
    "status": {
        "rid": "hNOPlP8oCgqnCm0=", 
        "time-ms": 3
    }, 
    "hits": {
        "found": 304, 
        "hit": [
            {
                "fields": {
                    "rating": "7.5", 
                    "genres": [
                        "Biography", 
                        "Crime", 
                        "Drama", 
                        "History", 
                        "Western"
                    ], 
                    "plot": "Robert Ford, who's idolized Jesse James since childhood, tries hard to join the reforming gang of the Missouri outlaw, but gradually becomes resentful of the bandit leader.", 
・・・

今回はとてもシンプルにやりましたが、この searchdomain は、
クエリパーサーも選べますし、ハイライトとかファセットとかフィルタークエリーといったところも
サポートされていて、動作検証の際などに重宝しています↓
http://docs.aws.amazon.com/cli/latest/reference/cloudsearchdomain/search.html
 
 

今回のIAMインテグレーションは、SuggestやDocument(インデクシング)にも、もちろん使えますし、
クレデンシャル周りはEC2にIAM ROLEを付けるような運用にすると良さそうですね!
 

Amazon Web Services 基礎からのネットワーク&サーバー構築
玉川憲、片山暁雄、今井雄太
日経BP社
売り上げランキング: 1,399

2014.08.08

Amazon CloudSearchのMulti Languagesについて


Amazon CloudSearchは2014年3月から日本語がサポートされましたが、
Analysis SchemeでJapaneseを選択した場合、形態素解析のみとなり、
N-Gramがあるとイイのにな、と思う場合があります。
Analysis Schemeには”Multi Languages”というオプションがあるのですが、
先日、こちらを選択することで、N-Gramに該当する検索が実現できるようになりましたので
さっそく試してみたいと思います。
 
■ Japanese(日本語形態素解析) と Multi Languages(N-Gram) の 2つのフィールドを定義します。
 

 
 
■ それぞれのフィールドに都道府県の名称を入れてみます
 

 
 
■ Japanese(日本語形態素解析) を “京都” で検索してヒットするのは “京都府” のみになります。
 

 
 
■ Multi Languages(N-Gram) を “京都” で検索してヒットするのは “東京都” と “京都府” になります。(スコア同じ)
 

 
 
■ カレット(^)で Japanese(日本語形態素解析) を重み付けしてみます。(デフォルト値は1なのですがjapanese^5にしてみました)
 

 
 
■ わざわざ2つデータを突っ込むのは面倒です。
 CloudSearchには”Source Field”という機能があるので、
 ↓のように設定することで、 Japanese(日本語形態素解析) のデータを copy_multi(N-Gram) にコピー出来ます。

 

 
 
■ copy_multi(N-Gram) は上記の multi(N-Gram) と同様の振る舞いをします。
 

 
 
■ Japanese(日本語形態素解析) と copy_multi(N-Gram) を組み合わせてキャレットの重み付けももちろん可能です。
 

 
 
CloudSearchはon goingなプロダクトで、今後も機能追加が沢山予定されております〜 :)
 
@imai_factoryが著者の一人の↓オススメです(*´∀`*)

Amazon Web Services 基礎からのネットワーク&サーバー構築
玉川憲、片山暁雄、今井雄太
日経BP社
売り上げランキング: 941

 

2014.07.02

Nikko One-Day Trip 2014 June


I just wanted to feel natural atmosphere. I didn’t build a plan but just off to Nikko.

I took TOBU limited express train called KINU from Kita-Senju.

Just sit-back-relax.

Change to the local train at Shimo-Imaichi.

Arrived at TOBU-Nikko station.

Near the statin, there is a convenience store and I withdrew some money. (Need some cash to get into Temple and Shrine) And walked down to the Nikko World Heritage Area.
I got hungry and stop by 食堂 食堂すゞき Shokudo-Suzuki.

I ordered YUBA(famous Nikko cuisine) pasta. Yummy.

Dessert was awesome :)

神橋(Shinkyo. Means holy bridge)

Enter the World Heritage Area!

輪王寺(Rinno-ji). Just a construction site!! lol

IHI(http://www.ihi.co.jp/en/) is in charge of this.

Niwa was beautiful.

I was able to drink natural water. (飲み水 means “water for drink”)

東照宮(Tou-Sho-Gu) is the most popular place in Nikko.

五重塔(Go-Ju-No-Tou. five-story pagoda)

World Famous Three Wise Monkeys!!

Yeah, gorgeous!

Really detailed and high-quality.

眠り猫(Sleeping cat. In the opposite side, bird is singing. But cat sleeps. That means so peaceful)

We can climb up to get to 奥社(Oku-sha)

This is what I want to feel :)

When I was a kid, I went to Nikko as school trip and I was totally moved by 鳴龍(Naki-Ryu. Dragon Barks)
The building was under construction but I was able to be and hear the coooool dragon sound!
Not only sound, Dragon painting on the ceil is also great. I think that design is nice for tatoos..

Walked in the fresh air.

二荒山神社(futarayama-shrine)

縁結びの木(matchmaking tree)

家光廟大猷院. Tokugawa Iemitsu grave. He was a well known monarch.

Gorgeous.

This is like 竜宮城(Ryu-gu-jyo) entrance

relaxing…

Unfortunately time is limited. I came back to Tokyo by TOBU train.

2014.06.20

it’s been 4 years


2014年サッカーワールドカップの日本代表の初戦の対戦相手はコートジボワールでした。
 
思い起こせば4年前のワールドカップシーズンに、はじめて海外出張にいきました。
ニューヨークのマンハッタン。ワールドカップの日本戦はオフィスのそばのレストランや、
当時NYに駐在していた上司の家で観戦しました。
 
出張中に、オフィスでの仕事が終わって、タクシーに乗ってディナーに向かう時に、
運転手さんとサッカーの話をしました。どこから?って聞いたらIvory Coast。
ワールドカップにも出てるんだぜ、と。
日本ではコートジボワールって皆んな言うよ〜って伝えたら喜んでくれたような記憶があります。
 
この4年間で、アメリカに住んだり、カナダに住んだり、外資系企業に転職したり、
インターナショナルな感じで仕事出来るように頑張ってきたつもりで、
少しずつだけど、そっち側になってきてるかなと。
 
ついでに、それ以外はこの4年間どうだったっけな?なんて考えたりして。
 
自分は元々は普通のDeveloperで。結局はソースコード1行1行が動くのだから、
プログラム書いてるヤツがエラいに決まってるって思ってやってました。
 
流行りな技術とか追いかけてると、なんとなく自分が業界のド真ん中に
いるような気がして。なんか居心地イイっていうか。
たとえ残業が続いても、深夜にトラブルで叩き起こされても。
 
それが、自分のDeveloperとしての技量や、もっと他の人と違うことしたいなっていう欲求とか、
自分が向いてるのってどういうところだろうとか、イロイロ考えているうちに、
今は、開発の現場から離れて、サービスを人に紹介したり、色んな人と会ったり、大勢の前で話をしたり。
 
この4年間あっという間だったけど、イロイロあったし、自分の中で取捨選択して、今があるんだなぁと。
 
先週末に、今働いてる会社が開場を提供して、ハッカソン(ハック+マラソン)を行いました。
土日の2日間で学生さん達がアイデアを出して、それを形にすることのお手伝い。
エンジニアやデザイナーの方が参加されたわけですが、
運営も学生さん。彼らのオーガナイズ力の高さに、ただただスゲーなーと。
 
あー、自分、年取ったな〜って考えたと同時に、スキルも経験もある若者技術者たちを間近でみた危機感というか。
もうちょっと、技術的なところをキャッチアップしてかないと、彼らに対して説得力のある説明とか出来なくなりそうだな、と。
#オッサンの昔の自慢話とかほどサブいものないし。。
ってことで、JavaScriptとか筋トレみたいなノリで日々いじろうかな、とか思ったり。
 
にしても、次の4年後、どうなってるのか全然想像つかないけど、色んな事にチャレンジして
エキサイティングな日々を送りたいものです。
 
↓ハッカソンの最後に撮った集合写真 :)

2014.05.29

LucidWorks SiLK を触ってみる


日頃いろいろな会社のお客様と技術話をさせていただくことが多いのですが、
Kibana + ElasticSearchを導入されているところが多いなという印象を持っています。
 
私自身は業務でElasticSearchを使ったことがなく、ずっと検索まわりはSolrでやってきたのですが、
SolrでもKibanaのようにダッシュボート的に使えるイカしたUI的なのないかなと思って
探していたら、LucidWorksという検索界隈では有名な会社がSiLKというソリューションを提供していました。
 
こちら↓にあるように『Solr integration with LogStash and Kibana』まんまやん、と。。

 
中身を見てみると、ElasticSearchの部分はSolrになっているのは、そりゃそうだって話ですが、
Kibana部分はBanana(https://github.com/LucidWorks/banana)というものになっています。
こちらも『Banana for Solr – A Port of Kibana』といった感じ。

 
↓ちょいちょい開発も活発で2週間前くらいにリリースもされているようです
Banana 1.2: Released on 11 May 2014
 
 
■ ダウンロードして起動してみる
 
上記のSiLKのページから必要な情報を入力して、ダウンロードしてきたものを解凍して立ち上げてみます。
SILK-README.txt には↓のように書いてあったので、その通りに。

1. Run Solr  

    cd $SLK_INSTALL_DIR/SiLK-1.1/solr-4.7.0/SiLK
    java -jar start.jar  

 
↓普通のSolrと同じように8983でリスンしてるっぽいので

4201 [main] INFO  org.apache.solr.servlet.SolrDispatchFilter  – SolrDispatchFilter.init() done
4214 [main] INFO  org.eclipse.jetty.server.AbstractConnector  – Started SocketConnector@0.0.0.0:8983

 
ブラウザからhttp://localhost:8983にアクセスしてみると、
solr.warとbanana.warっていう2つのwarファイルが配置されているようです。

 
で、bananaの方にアクセスしてみると、それっぽいのが出てきました。
Syslog Demoということみたいです。
errorで検索をしているみたいですが、OUTLOOKのがチョイチョイ出てます…。

 
 
■ Solrの定義ファイルを見てみる
 
Solrの管理画面を見てみると↓のlogstash_logs_demoなのかなという気がしてきます。
(他は全然ドキュメント入ってなかったので…)

 
スキーマブラウザをみると↓そんな感じなのね、と。

 
schema.xmlを探してたら、confディレクトリの下は schema.xml.bak となっていて、
それっぽいのを他に探してみると、managed-schemaというファイルがあって、
↓こんな感じで定義されていました。

  <fields>
    <field name="_version_" type="long" indexed="true" stored="true"/>
    <field name="event_timestamp" type="tdate" indexed="true" stored="true"/>
    <field name="event_version" type="long" indexed="true" stored="true"/>
    <field name="host" type="text_en" indexed="true" stored="true"/>
    <field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
    <field name="logtext" type="text_en" indexed="true" stored="false"/>
    <field name="message" type="text_general" indexed="true" stored="true"/>
    <field name="path" type="text_en" indexed="true" stored="true"/>
    <field name="received_at" type="text_en" indexed="true" stored="true"/>
    <field name="received_from" type="text_en" indexed="true" stored="true"/>
    <field name="source_host" type="text_en" indexed="true" stored="true"/>
    <field name="syslog_message" type="text_en" indexed="true" stored="true"/>
    <field name="syslog_program" type="string" indexed="true" stored="true"/>
    <field name="tags" type="text_en" multiValued="true" indexed="true" stored="true"/>
    <field name="type" type="text_en" indexed="true" stored="true"/>
    <dynamicField name="*_coordinate" type="tdouble" indexed="true" stored="false"/>
    <dynamicField name="ignored_*" type="ignored" multiValued="true"/>
    <dynamicField name="random_*" type="random"/>
    <dynamicField name="attr_*" type="text_general" multiValued="true" indexed="true" stored="true"/>
    <dynamicField name="*_txt" type="text_general" multiValued="true" indexed="true" stored="true"/>
 …

 
 
■ データの投入方法
 
なんとなく、動かせそうな手応えが掴めてきました。
続いてデータ投入はElasticSearchは自社で開発しているLogStashというログコレクタを使う感じになるのかな、と。
 
SILK-README.txtを見ると、solrWriterForLogStash/logstash_deploy/logstash_logsに
いろいろあるよ的な事が書いてあります。
 
一番ぽゆい感じのドキュメントをみると、やり方がズダズダっと書いてあるのですが、

$ cat MANUAL.TXT 
Instructions 

This document details how to use LogStash with Solr.  This release has been tested with:
 	Solr version 4.4.0, 4.5.0, 4.6.0, 4.7.0
 	LogStash version 1.3.3
 	Java 1.6.0

1) Create a collection to hold the log event data.  

途中から↓のような記述が出てきて、なんかちょっとLucidWorksロックイン的な
感じになったらヤダな、、とか。
・Copy lucidworks.jar to the directory where you will execute the LogStash jar file
・Copy lucidworks_solr_lsv133.rb to your LogStash outputs directory.
 
個人的には普段はFluentdを使っているので、fluent-plugin-xxxみたいので
サクっと出来たらいいのになぁなんて思ったりもしますが…。
 

[改訂新版] Apache Solr入門 ~オープンソース全文検索エンジン (Software Design plus)
大谷 純 阿部 慎一朗 大須賀 稔 北野 太郎 鈴木 教嗣 平賀 一昭
技術評論社
売り上げランキング: 40,317

2014.05.24

Infinity Ventures Summit 2014 Springにスタッフとして参加しました


Infinity Ventures Summitに、2013 Spring2013 Fallに続いて
2014 Springもスタッフとして参加させていただきました。

 
今までの2回はB会場のステージ担当でしたが、今回はA会場担当ということで、フレッシュな気持ちで参加させていただきました。
今回も、若く、スキルフルで、モチベーションの高い皆さんと一緒にチームとして気持ちよく仕事が出来ました。
また、同じタイミングでIVSに参加するようになった、前職で同じ開発部にいた @sohei
ソーシャルメディアチームのリーダーとして、アウトスタンディングな活躍をしていました。

 
ステージ担当はセッション前後にタスクが集中しますが、その分、たくさんのセッションのお話を聞くことができます。
今まで以上に、普段お仕事でお世話になっている方も多くなり、お話ひとつひとつが今まで以上に腹落ちする、
とても貴重な機会でした。

 
また、今まで以上に国際色豊かなセッションが多く、懇親会でも色々な国から来られた登壇者の方ともお話させていただき、
改めて英語の重要性を再確認しました。

 
IVSの目玉であるLaunch Padでは、最前線で作業させていただきました。
舞台の袖で、ビリビリした緊張感がダイレクトに伝わってくる場所で、日常ではなかなか経験できない雰囲気。

 
今回の全てのセッションを通して、一番心を打たれたのは、ジャパンハートの吉岡秀人先生のご講演。

 
お話に感動して、サイン入で書籍を購入させていただき、

 
一緒に写真を撮っていただきました。

 
全てのセッション終了後は、お預かりしたお荷物を登壇者様にお届けしたり、紛失物をセッション会場で隈なく探しつつ、
台帳管理された備品を収納していきます。ケーブル一本一本に至るまで丁寧に梱包して格納し、次回のIVSに備えます。

 
全ての業務完了後、クロージングパーティーに参加させていただきました。
この豪華BBQのクオリティは一度味わってしまうと忘れられません…。

 
今回も素晴らしいカンファレンスに参加させていただきありがとうございました!
IVPの小林さん、小野さん、田中さんはじめ、3日間一緒にスタッフとして働かせていただいた皆さまに感謝です!

 

救う力 人のために、自分のために、いまあなたができること
吉岡 秀人
廣済堂出版
売り上げランキング: 4,758

2014.05.21

函館観光 May 2014


青森から津軽海峡フェリーに乗って函館へ。

 
ちょいちょい市街から外れたところのターミナル。

 
函館駅行きのバスまで時間あったので、鮭イクラ丼的な。

 
食堂から外に出るとカップル用(?)の。

 
バスで駅までは15分くらいでした。

 
函館駅。

 
ホテルは駅の目の前の↓

 
荷物を預かってもらって五稜郭へ。

 
とても雰囲気の良いところでした。

 
箱館奉行所。当時の文献等を元にして忠実に再現したとのこと。
中に展示してある資料類は開港後の様子とか面白かった。

 
骨組み模型カッコイイ。。

 
タワーへ向かいます。

 
展望台からは五稜郭が迫力ある感じで。

 
模型とか。

 
なかなか良い景色。

 
このソフトクリームうまかった。300円。

 
ホテルに戻って温泉に使ってから、観光再開。市電で元町の方へ。

 
この辺一体は本当にシャレオツな雰囲気。

 
旧函館区公会堂。時間ギリだったけど入れてもらえた。

 
なんともゴージャス感のある。

 
テラスからの景色もナイス。

 
とてもよく手入れされた感のある。

 
函館山に行く途中にいくつか教会を見て回りました。聖ニコライ。

 
夜はライトアップされる。

 
テクテク歩いてロープウェイ。

 
登ってる途中。期待できそう。

 
展望台は富士山の山頂くらい人でごった返してたけど、景色はキレイでした。

 
降りるのにはちょいちょい並びました。中国からの団体旅行客と、修学旅行系の学生が多かったなぁ。

 
そのまま赤レンガ倉庫方面へ。なぜか原発反対な自由の女神。。

 
人は少ないけど、イイ雰囲気。

 
赤レンガ倉庫群。夜遅かったので中には入らず。

 
更に歩いて函館駅の方に。なんかでっかい船。

 
カップルとか釣りしてる人とか、静かでナイスなところ。

 
函館っていうことで、塩ラーメン。駅前の しなの というラーメン屋。

 
温泉入って寝て、朝は早朝のスーパー北斗で札幌へ。

 
函館駅でかった駅弁。でも、電車の中で売ってた長万部のかにめしの方が旨そうだったかも。。

 
ガッツリ食って、北海道ならではの景色を楽しんで、ちょっと寝たら新札幌でした、と。

 

るるぶ北海道’14~’15 (るるぶ情報版(国内))
JTBパブリッシング (2014-03-17)
売り上げランキング: 4,532

Next »