インデックスの作成方法

その1

  1. 日本語のPublicTimeLineをいろいろな情報と共にDBに追加
  2. その中のTweetをSenで形態素解析して、またDBに追加
  3. そのDBからDataImportHandlerを使いインデックスに追加

その2

  1. 日本語のPublicTimeLineをいろいろな情報と共にDBに追加
  2. その中のTweetをSenで形態素解析して、そのままインデックスに追加

その3

  1. 日本語のPublicTimeLineをいろいろな情報と共にDBに追加
  2. その中のTweetをSenで形態素解析して、そのままインデックスに追加ついでにDBにも追加

DataImportHandlerを使わないでその3でいい気がしてきた
けどDBに形態素解析した結果を保持するとTweetと冗長か
けどもしインデックスが消えたら、すべてのTweet形態素解析し直さなきゃいけなくて恐ろしく時間がかかる。インデックスを毎日バックアップしておけばその心配もないか。ということでその2に決定

Lucene本を読みながらインデックスの作成を作り直す。

  • クローラ、index作成クラスの仕事
    1. 日本語のPublicTimeLineをいろいろな情報と共にDBに追加
    2. 取得したTweetをSenで形態素解析
    3. その解析した文字と取得したユーザー名からから、そのままインデックスに追加

まだDBのファイルDL終わらないから,先に2,3を実装しよう

予定変更
DB必要なし!
その4

[ { "url": "http://twitter.com/wata308/status/000000000", "image": "http://s3.amazonaws.com/twitter_production/profile_images/000000000/a.jpg", "time2": "2009-06-25T16:14:51+09:00", "content": "TWEEEEEEEEEET", "user": "snkken", "time": "2009-06-25 16:14:51", "id": 000000000 }, 
  1. 日本語のPublicTimeLineをいろいろな情報取得(取得できる情報は上記の通り
  2. contentをJapaneseAnalyzerで形態素解析
  3. 形態素解析した文字列とuserからオリジナルのアナライザを使ってインデックスを作成

やっぱりDB必要だ。検索結果としてアイコンを表示しようと思うと、DBにそれらの除法を残しておいた方がいい。ユーザー名からshowStatus()で情報取得してると、すぐにAPI制限だ
本当は自分で日本語PublicTimelineのクローラを作れば色々できるんだけど、そのスキルがないために色々制限されちゃう
firehose使えれば簡単なのになー


だいたいできたと思うけど、analyzer-sen.xmlで指定している以外のものも形態素解析の結果として帰って来ちゃう


日本語のクロールとインデックスを1分ごとに自動的にやるもの完成
あとは他の情報をDBに追加する作業