刺身の上にたんぽぽ乗せる日記

プログラミングしたり、自販機の下に落ちてる小銭を集めたりしてます

2chnavi

feedparser置き換え

2chnaviのサービスを運用するにあたって、リソースのボトルネックは何かというと、実はCPUが一番きつい。HDDと違って足りなかったら遅くなるだけでよかったんだけど、流石に全てのフィードをとってパースするのに1時間以上かかるのは、1万以上のRSSがあると…

クローラの高速化

新しいサーバでも相変わらずクローラが超cpu boundなため、高速化のために手を打つ。pypy使おうと思ったけど、面倒くさすぎて諦めた。 とりあえず気軽に使えるcythonに切り替え。特別なsyntaxは全く使わず、ただコンパイルしてみたけど、大きな変化はなし。…

Cloud Core

2chnavi引越し予定地。さよならlinode。こんにちはCloud Core。http://www.cloudcore.jp/vps/設定手順 コントロールパネルからログインする OSインストールのページからdebianを選択 リモートコンソールからVNCでつなぐ セットアップの手続きをすすめる DHCP…

solr+gosenで日本語形態素解析

面倒くさい。 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 …

solr TermsComponent

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 ピ…

mac + cmecab-javaの1.7

ファイルとかはここ。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 辺りを参考に…

solrデータ削減計測

とりあえず今日一日のデータで比較。 実行中にデータが増えてるかもしんないから、多少のずれはあるかも。一番期待していたomitTermFreqAndPositionsはやはり想像通り日本語検索がまともに動かなくなる。普通に考えるとどうせデフォルトはn-gramだろうから、…

2chnaviを動かしてるlinodeのリサイズ

ディスクを使いきって、2日間全くアップデートされてなかった。意外と気づかないもんだ。 多分solrのindexを作りなおせば時間稼ぎができたとは思ったけど、時間の問題だろうから、もう諦めてlinodeの大きいプランに切り替えることにした。 そもそも512MBで動…

solr最適化

あんまり見てなかったので。 http://wiki.apache.org/solr/SolrPerformanceFactors http://wiki.apache.org/lucene-java/ImproveSearchingSpeed http://wiki.apache.org/solr/SolrCaching バージョン上げる update頻度が高いので、optimizeではなく、mergeFa…

solr最適化その2

solrだけでなく、周りからの最適化の話。 MySQLとsolrの両方にデータを入れるという構成がそもそも無駄 rawデータとしてmysqlに突っ込んでおくとバックアップが楽だし、solrのschemaを好き勝手に変えられるのは嬉しい。 けどsolrのindexはでかすぎ。 MySQLが…

nginxがrssやcssをgzip圧縮してくれなかった件に関して

どうやらデフォルトではtext/html以外は圧縮しないらしい。 gzip_types text/plain text/css application/rss+xml text/javascript; これでtext/html以外の圧縮したいものを指定するらしい。面倒くさい。 ちなみに、twistedではapplication/rss+xmlだったけ…

twsitedのhttp clientをgzip対応させてみた。

リクエストヘッダにAccept-Encoding: gzip,deflateを加える レスポンスヘッダのcontent-encodingがgzipだったらデコードする 割と素直に動いてよかった。

twistedのhttp clientもgzip対応してない

2週間前にチケットが更新されているけど、実際どうなのかね? gzipしてくれるforward proxyを使うという手も考えたけど、どうやらnginxはgzipのdecompressionには対応していないらしい。しょんぼり。

nginxを挟んでみた

色々資料を集めてる際に、gzip圧縮をしていないことに気づいた*1ので、twistedで書くのも何なので、nginxを挟んでみた。 あんまり負荷かかってないし、muninでトラックできるし、結構いい気がする。 *1:この調子だと普通に転送量オーバーする予定だった。今…

twisted 2chnavi todo

広告を載せる ロギングをもう少しちゃんとする datetime、IP、Path、UAくらいでいい気がする SVNレポジトリ

2chnavi置き換え完了

色々どたばたしたけど、一応終わったのかな?色々と感想: Pythonは言語的にめちゃくちゃ強い。PHPは不便すぎる。 Cheetah vs Smartyも同様。Cheetah使った後にSmarty見るとあまりにも貧弱で構文がうんこすぎて困る。 TwistedはDocumentが足りなさ過ぎて困っ…

twisted 2chnavi

とりえあず置いてみた。 http://2chnavi.net:18080/データを定期更新するスクリプトを実行してないから、データは更新されない感じ。 大きく変わったのは、 実装をphp+ethna+smartyからpython+twisted+cheetahに変更 ページのキャッシングを無効化して、リク…

Twisted 2chnavi

面白いからtwistedで書き直しているところなんだけど、大体できあがったので、まだ残っている作業をメモしておく。 インデックスの作成しなおし できたけど、インデックスサイズが倍になってしまった... トップページ 完成 リアルタイムランキング 完成 クリ…

twisted web

http://twistedmatrix.com/trac/wiki/TwistedWeb twisted webが割と強そうなので、試しに2chnaviのコードをpythonで書きなおしてみた。 大雑把にrenderingするところまではできるんだけど、templateのcachingとか考えると、わざわざ書くのが面倒くさい気持ち…

solrのfacetの使い方

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=…

supervisorをインストール

http://supervisord.org/ 基本的にはスーパーバイザなんだけど、適当なシェルスクリプトを実行できるので、デーモンにしてなかったスクリプトを走らせるためにインストールしてみた。programのところに、 redirect_stderr=true stdout_logfile=/var/log/2chn…

検索機能改善終了

だいぶ良くなったと思う。

バックエンドを大幅にsolrに変更

作業ログはこちら: 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メンテのため、更新は停止中です。

メンテナンス中

落ちてます。まぁ、困ってる人はここに辿りつけない気がするので、どうしようもないんだけどさ。

apache solrでまじめな検索つくるよー!

なんだかんだで結構自分でも使ったりするので、真面目に作ることにしてみた。 一応目標は、 日付でソートされた結果 ブックマーク数によりフィルタリング 日付・ブックマーク数を利用した重み付け付きの検索結果 が出せればいいと思ってる。最後のはどういう…