春山 征吾のくけー

https://www.unixuser.org/~haruyama/blog/ に移転しました http://wiki.livedoor.jp/haruyama_seigo/d/FrontPage @haruyama タイトルが思いつかないときはそのときかかってた曲をタイトルにしています.

2014年02月

2014/02/28 まだしばらくフリーランスです.

春山 征吾のくけー : 2014/01/01 少なくとも2014年2月末まではフリーランスとして働きます - livedoor Blog(ブログ) と書きました.

今後もしばらくの間は, フリーランスとして活動を続けます.

1月2月はちょっとしか転職活動はしませんでしたが活動は継続しています. よいお話があれば聞きに行きます.

2月末まで行なっていた開発は順調に終わりましたが, 3月以降アテにしていた話は縮小しそうで, 3,4月は暇になるかもしれません.

面接・面談/仕事のご依頼/セキュリティや検索についてのご相談/単なる食事のお誘いなどに柔軟に対応できますので, ご連絡をお待ちしております.

職務経歴などは 転職用情報 - 春山征吾のWiki - Seesaa Wiki(ウィキ) からたどれます.

Lucene/Solr でのフィールドのユニークな値の数の求め方

Lucene/Solr で フィールドに入っているユニークな値の数を求めたい場合があります. たとえばユニークユーザ数を求める場合です.

初級編

FieldCollapsing - Solr Wiki を利用します.

group.ngroups パラメータを true に指定するとクエリにマッチするグループの数を出力してくれます.

/solr/select?group=true&group.field=[フィールド名]&group.ngroups=true&...

1日1.5億PV/数百万UU 1時間最大1千数百万PV/百万UU という想定で, 1時間のUUを(qパラメータで時間を区切って)求めると, 数十秒(1分越えることもある)で得られました.

中級編

上記の想定では1日のUUを求めるにはちょっと重たそうです.

ここで Solr のコアは1日ごとに別々だとします.

コア単位でフィールドのユニークな値を求めるのに, LukeRequestHandler - Solr Wiki が利用できます.

/solr/admin/luke?fl=[フィールド名]

Solr Wiki のページを distinct で検索してもらえればわかりますが, フィールドのユニークな値の数が得られます.

上記の想定で1日のUUをこの方法で求めると, 10秒前後でした.

上級編

もし, 1時間のUUも初級編の方法では時間がかかりすぎる, 中級編であればいけるという場合はどうしたらいいでしょうか.

この場合は検証してないのですが, 1時間ごとにコアを作成することになるでしょう. 1時間ごとのUUはそのまま LukeRequestHandler を用います. 1日のUUは, インデックスをマージしてやはり LukeRequestHandler で求めます.

Solr のインデックスのマージについては MergingSolrIndexes - Solr Wiki に記述されています.

もしくは, 特定のフィールドの値が複数の shard に入らないようにして適当にするでしょうか.

vrms のすすめ

Debian 系の GNU/Linux のディストリビューションには vrms というパッケージがあります.

vrms - Wikipedia, the free encyclopedia

Virtual な リチャード=ストールマンが, インストールされている Debian パッケージのうち non-free や contrib なものを検出してくれます.

最近買った PC は, グラフィックカード(Radeon) が新しくて自由な xorg のドライバを使うには Linux 3.13 が必要で, 先日まで 3.12 であった Debian sid を利用しているマシンでは以下の状態でした.

               Non-free packages installed on honbu5

fglrx-atieventsd                    events daemon for the non-free ATI/AMD RadeonHD displa
fglrx-driver                        non-free ATI/AMD RadeonHD display driver
fglrx-modules-dkms                  dkms module source for the non-free ATI/AMD RadeonHD d
libfglrx                            non-free ATI/AMD RadeonHD display driver (runtime libr
libfglrx-amdxvba1                   AMD XvBA (X-Video Bitstream Acceleration) runtime libr
libgl1-fglrx-glx                    proprietary libGL for the non-free ATI/AMD RadeonHD di

               Contrib packages installed on honbu5

glx-alternative-fglrx               allows the selection of FGLRX as GLX provider
glx-alternative-mesa                allows the selection of MESA as GLX provider
glx-diversions                      prepare for using accelerated GLX implementations from
nvidia-installer-cleanup            cleanup after driver installation with the nvidia-inst

  6 non-free packages, 0.3% of 2164 installed packages.
  4 contrib packages, 0.2% of 2164 installed packages.

Debian sid に 3.13 が来たので, 自由なドライバを使うように設定し, 以下の状態になりました.


No non-free or contrib packages installed on honbu5!  rms would be proud.

rms would be proud. いい言葉ですね.

(ただし, http://people.freedesktop.org/~agd5f/radeon_ucode/ を手で導入してます. radeon-ucode のライセンスは完全に自由なものとは言えないのが残念なところです).

これで自分が管理するDebian系のディストリビューションのマシン 4台(Debian sid が2台, Debian wheezy が1台, Ubuntu 13.10 が1台) はすべて rms would be proud. な状態になりました.

注意: Ubuntu では, emacs23 や emacs24 のインストールをすると emacs{23,24}-common-non-dfsg が入ってしまい, これは vrms に指摘されます. Ubuntu ダメですね.

2014/02/04 カラオケに行きました

知り合いとカラオケに行きました. 私が歌った曲のリストです.

  1. 聖飢魔II - Brand New Song
  2. Dokken - Kiss of Death
  3. Queen - March of the Black Queen
  4. Kiss - I Stole Your Love
  5. Michael Monroe - Dead, Jain Or Rock'n'Roll
  6. Y&T - Rescue Me
  7. Megadeth - Symphony of Destruction
  8. Van Halen - Right Now
  9. Riot - Warrior
  10. Rainbow - Stargazer
  11. Judas Priest - Sinner
  12. Queen - Death on Two Legs
  13. Van Halen - Dreams
  14. Meatloaf - I'd Do Anything For Love (But I Won't Do That)
  15. Yes - Roundabout
  16. Ramons - Psycho therapy
  17. Blue Oyster Cult - (Don't Fear) The Reaper
  18. Accept - Fast as a Shark
  19. Led Zeppelin - Achilles Last Stand
  20. Judas Priest - Exciter
  21. Carcass - Heartwork
  22. Scopions - Blackout
  23. 聖飢魔II - Heavy Metal Is Dead
QRコード
QRコード
  • ライブドアブログ