2014.10.18

[Report] #CloudSearch Meetup at Amazon Meguro Office in Oct 2014


CloudSearch Team came to Tokyo in May 2014 and then we had Amazon CloudSearch meetup.
Here is my report -> [Report] #CloudSearch Meetup at Amazon Japan Office (http://shinodogg.com/?p=6034)
 
We had meetup again here in Tokyo. Cause Rob Walters(General Manager) and Vivek Sriram(Principal Business Development) were here! Around 50 people were gathered :)
 
■ Keynote – Rob Walters
 

 
Rob introduced A9(Amazon’s subsidiary. Developing Amazon Product Search, Visual Search, and CloudSearch). He stressed that Japan market is important and commitment to Japan is strong. Rob also introduced global CloudSearch use-cases.
 
– THE TIMES
Archive search back to 1700s
Low-cost, high-throughput, low-latency search
 
– SmugMug
Billions of documents!
 
– Amazon
“amazon simle” and “Goodreads”
 
And, thanks Ryoichi(@ryo1kato) for translating!
 
 
■ CloudSearch Deep Dive – Eiji Shinohara
 
I talked CloudSearch detailed things. I introduced latest CloudSearch updates like CloudTrail support, Bigram Indexing, and Customising Japanese Tokenization.
 
I’m going to update following slides and upload it later.

 
 
■ 開発者からみたCloudSearch – Yuki Tanaka(@tan_yuki)
 

 
ChatWork is using CloudSearch heavily. One of the biggest use-case in Japan. Developer Tanaka-san introduced the way to move to CloudSearch.
As you can see following slide, their data is huge but CloudSearch handles that with low-latency :) Managed service is beneficial that they don’t need to think of operation and maintenance.

 
 
■ CloudSearch nanapiの事例紹介 – Yuhei Kagaya(@yuhei_kagaya)
 

 
nanapi is popular life recipe site in Japan. They are using CloudSearch simply but effectively.
As you can see the slide, it is very easy to use CloudSearch with CakePHP! Why not to use? :)

 
 
■ スクーでのCloudSearch利用事例 – Hromitsu Ito
 

 
schoo is life long learning platform. There are AWS classes in schoo!
Ito-san heard that CloudSearch is nice to use at 『CTO Night with Amazon CTO Werner Vogels』 in July 2014 at Amazon Meguro Office.
Then, Ito-san and schoo developers introduced CloudSearch very quickly(about only one week!!).

 
 
■ How to improve search – Genta Kaneyama(@PENGUINANA_)
 

 
Kaneyama-san is the top-notch Japanese search engineer works at Cookpad(most popular recipe service in Japan).
He introduced Black Belt tips for improving search.

 
 

I’m honored to have these guys in this meetup! Thank you for your awesome presentations :)

 
Thanks you for helping me to organize this event Sakatoku-san and Hoshino-san!

 

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

2014.10.13

KOHH & MONY HORSE – We Good


最近の日本語ラップで一番注目を集めてるのはKOHH(@kohh_t20)なんじゃないかと思いますが、
↓のビデオがいきなりデーンって広まって〜ってキッカケで知った人も多いんじゃないかと。(自分もその一人です)

 
Riverside MobbっていうKOHH周辺の人たちとか、そもそもどういう由来でKOHHとかT20って名前なのかとか、
父親違いの弟のLil Kohhの事とか↓のViceのビデオみとくとスゲーよく分かります。mixiがキッカケとか。

 
で、話戻ると、このWe Goodは、ちょっと今までの日本にない感じだなーって思ってたら、
↓まんまで、フックだけじゃなくて、バースのフロウもまんまなわけです。

YGって知らなかったんですが、コンプトン出身のモロな感じのヤツで。ってかYGってYoung Gangstaの略って、まんまやん、と。
英語の字幕でリリックみてると、真面目に英語勉強するのバカらしくなってくるような、
こういう直球勝負なの最近聞いてねーなーとかって思ったりするわけです。
 
なんというか、こういうところからバーンと出てきて、スキル磨いて今じゃトップノッチっていうか。
いかにも賛否両論ありそうなY’Sって自分は結構好きな感じなんだけど(Stand Hardのバースとか。)
↓コレとかみると、KOHHの方がだいぶ先いっちゃってる感あるかな、と。

 
んま、そんなこんなで↓コレとか、おもしれーなって思うし、ここ7〜8年まともにHIPHOP聴いてなかったけど、
また色々聴いてみようかなとか思う今日この頃です。
もに山さんにも頑張って欲しいです。Twitterのアカウント乗っ取られてんのかな。。

Fuck Swag (REMIX) [feat. ANARCHY & 般若] [Explicit]
GUNSMITH PRODUCTION (2014-10-10)
売り上げランキング: 178

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

Next »