2chnavi
2chnaviのサービスを運用するにあたって、リソースのボトルネックは何かというと、実はCPUが一番きつい。HDDと違って足りなかったら遅くなるだけでよかったんだけど、流石に全てのフィードをとってパースするのに1時間以上かかるのは、1万以上のRSSがあると…
新しいサーバでも相変わらずクローラが超cpu boundなため、高速化のために手を打つ。pypy使おうと思ったけど、面倒くさすぎて諦めた。 とりあえず気軽に使えるcythonに切り替え。特別なsyntaxは全く使わず、ただコンパイルしてみたけど、大きな変化はなし。…
2chnavi引越し予定地。さよならlinode。こんにちはCloud Core。http://www.cloudcore.jp/vps/設定手順 コントロールパネルからログインする OSインストールのページからdebianを選択 リモートコンソールからVNCでつなぐ セットアップの手続きをすすめる DHCP…
面倒くさい。 http://code.google.com/p/lucene-gosen/でnaist-chasen版のdl solrの3.1使ってたけど、3.5/4.0と書いてあったので、3.5をDL lucene-gosenのjarをexample/solr/libに置く。libディレクトリはないから自分で作る。 schema.xmlを編集。 適当に見…
適当にクラスタリングしてみたらこんな感じになった。 ハ 8 ヤバイ 8 ソフトバンク 8 部分 9 ゆき 9 ドイツ 12 小林 15 完全 17 アメリカン, 航空 22 プラス, NEW, ラブ 28 民団, 外国, 異論 32 白, 旭, ヤクザ, ゴルフ 33 お前, 社長, 社員 39 バス, 地下鉄…
とりあえずクラスタリングは置いといて、単純に最近の話題の抽出を行ってみた。 方法は単純に最新1000件とその前の1000件で出てくる単語の比較。 8 栄子 名詞,固有名詞,人名,名,*,*,栄子,エイコ,エイコ 8 ヤクザ 名詞,一般,*,*,*,*,ヤクザ,ヤクザ,ヤクザ 8 …
Apache solrの本を立ち読みしてたら丁度必要っぽいのがあった。 http://wiki.apache.org/solr/TermsComponent これで単語の出現頻度がわかるわけだけど、残念ながらコーパス全体にかけるだけだから、最近のデータだけ、とかはできない。 もうこれは自力でmec…
適当にやった。名詞だけを抽出して何かしら面白い結果が得られるか見てみた。 データセットは最近の3000件。 ロシア 33 メンバー 34 夫 34 www 34 体調 35 ー 37 スライム 37 声 39 Part 39 iPhone 39 話題 40 フジテレビ 43 五輪 44 人気 44 声優 46 ピ…
ファイルとかはここ。http://code.google.com/p/cmecab-java/ http://code.google.com/p/cmecab-java/wiki/HowToInstall http://kazuakey.blogspot.com/2010/12/solr-14-cmecab-java.html http://code.google.com/p/cmecab-java/wiki/HowToUse 辺りを参考に…
とりあえず今日一日のデータで比較。 実行中にデータが増えてるかもしんないから、多少のずれはあるかも。一番期待していたomitTermFreqAndPositionsはやはり想像通り日本語検索がまともに動かなくなる。普通に考えるとどうせデフォルトはn-gramだろうから、…
ディスクを使いきって、2日間全くアップデートされてなかった。意外と気づかないもんだ。 多分solrのindexを作りなおせば時間稼ぎができたとは思ったけど、時間の問題だろうから、もう諦めてlinodeの大きいプランに切り替えることにした。 そもそも512MBで動…
あんまり見てなかったので。 http://wiki.apache.org/solr/SolrPerformanceFactors http://wiki.apache.org/lucene-java/ImproveSearchingSpeed http://wiki.apache.org/solr/SolrCaching バージョン上げる update頻度が高いので、optimizeではなく、mergeFa…
solrだけでなく、周りからの最適化の話。 MySQLとsolrの両方にデータを入れるという構成がそもそも無駄 rawデータとしてmysqlに突っ込んでおくとバックアップが楽だし、solrのschemaを好き勝手に変えられるのは嬉しい。 けどsolrのindexはでかすぎ。 MySQLが…
どうやらデフォルトではtext/html以外は圧縮しないらしい。 gzip_types text/plain text/css application/rss+xml text/javascript; これでtext/html以外の圧縮したいものを指定するらしい。面倒くさい。 ちなみに、twistedではapplication/rss+xmlだったけ…
リクエストヘッダにAccept-Encoding: gzip,deflateを加える レスポンスヘッダのcontent-encodingがgzipだったらデコードする 割と素直に動いてよかった。
2週間前にチケットが更新されているけど、実際どうなのかね? gzipしてくれるforward proxyを使うという手も考えたけど、どうやらnginxはgzipのdecompressionには対応していないらしい。しょんぼり。
色々資料を集めてる際に、gzip圧縮をしていないことに気づいた*1ので、twistedで書くのも何なので、nginxを挟んでみた。 あんまり負荷かかってないし、muninでトラックできるし、結構いい気がする。 *1:この調子だと普通に転送量オーバーする予定だった。今…
広告を載せる ロギングをもう少しちゃんとする datetime、IP、Path、UAくらいでいい気がする SVNレポジトリ
色々どたばたしたけど、一応終わったのかな?色々と感想: Pythonは言語的にめちゃくちゃ強い。PHPは不便すぎる。 Cheetah vs Smartyも同様。Cheetah使った後にSmarty見るとあまりにも貧弱で構文がうんこすぎて困る。 TwistedはDocumentが足りなさ過ぎて困っ…
とりえあず置いてみた。 http://2chnavi.net:18080/データを定期更新するスクリプトを実行してないから、データは更新されない感じ。 大きく変わったのは、 実装をphp+ethna+smartyからpython+twisted+cheetahに変更 ページのキャッシングを無効化して、リク…
面白いからtwistedで書き直しているところなんだけど、大体できあがったので、まだ残っている作業をメモしておく。 インデックスの作成しなおし できたけど、インデックスサイズが倍になってしまった... トップページ 完成 リアルタイムランキング 完成 クリ…
http://twistedmatrix.com/trac/wiki/TwistedWeb twisted webが割と強そうなので、試しに2chnaviのコードをpythonで書きなおしてみた。 大雑把にrenderingするところまではできるんだけど、templateのcachingとか考えると、わざわざ書くのが面倒くさい気持ち…
facetってあのgroup byみたいなやつ。 ここに大体書いてある。 http://wiki.apache.org/solr/SimpleFacetParameters忘れないうちにリクエストのurlをメモしておく。/solr/select?indent=on&version=2.2&q=(クエリ)&fq=&start=0&rows=10&fl=*%2Cscore&qt=&wt=…
http://supervisord.org/ 基本的にはスーパーバイザなんだけど、適当なシェルスクリプトを実行できるので、デーモンにしてなかったスクリプトを走らせるためにインストールしてみた。programのところに、 redirect_stderr=true stdout_logfile=/var/log/2chn…
だいぶ良くなったと思う。
作業ログはこちら: http://d.hatena.ne.jp/kudzu/20110513/1305313247色々試してみた結果、大体の処理がsolrのほうが高速で、大体sqlと同じことを圧倒的に簡単にできる*1。 2chnaviは基本的にほぼ全てのページがエントリ・サイトへのリンクのリストなので、…
これで簡単に人気のエロ画像などをさがすことができます。 http://2chnavi.net/search?threshold=10&keyword=%A5%A8%A5%ED%B2%E8%C1%FC
DBメンテのため、更新は停止中です。
落ちてます。まぁ、困ってる人はここに辿りつけない気がするので、どうしようもないんだけどさ。
なんだかんだで結構自分でも使ったりするので、真面目に作ることにしてみた。 一応目標は、 日付でソートされた結果 ブックマーク数によりフィルタリング 日付・ブックマーク数を利用した重み付け付きの検索結果 が出せればいいと思ってる。最後のはどういう…