Fess で Twilog を検索する

全文検索システムの Fess で note や WordPress を検索できるようにしたと書いた。

Fess で note を検索にする – with a Christian Wife
https://wacw.cf/2020/07/03/indexing-note-with-fess/

Fess で WordPress を検索する – with a Christian Wife
https://wacw.cf/2020/07/04/indexing-wordpress-with-fess/

次は Twilog を検索したい。対象とするのは以下のページだ。

Christian Wife(@wachristianwife) – Twilog
https://twilog.org/wachristianwife

Twilog は日付別、月別、ハッシュタグ別等で Twitter の投稿を見ることができるようになっている。やりたいことは、検索結果として Twilog の日付別ページが表示されるようにすることだ。

なお、Twitter のページを Fess でクローリングしようとしたが、これはうまくいかなかった。

note や WordPress で Fess の設定をしてきて、だんだん慣れてきたとおもったら、Twilog は note や WordPress とは違うトラップがあった。Twilog には robots.txt の設定がしてあるようで、クローリングができないようになっている。

これを回避するには、/app/WEB-INF/classes/fess_config.properties の 204、205 行目あたりを以下のように変更する。

変更前:

1crawler.ignore.robots.txt=false
2crawler.ignore.robots.tags=false

変更後:

1crawler.ignore.robots.txt=true
2crawler.ignore.robots.tags=true

これで robots.txt によるクローリング禁止を回避できる。

参考:
FESS 13.2.0 ウェブクロールの設定ができた : Linux備忘録&ちょっと休憩しましょ
http://blog.livedoor.jp/linuxer2006/archives/65949570.html

では、Fess の設定をしていこう。

「Admin ページ>MENU>Crawler>Web」で新規に Web Crawling を作成し、以下のように設定する。

・Name
Twilog(適当に設定)

・URLs
https://twilog.org/withachristianwife

・Included URLs For Crawling
https://twilog.org/withachristianwife.*

・Excluded URLs For Crawling

1https://twilog.org/withachristianwife/stats
2https://twilog.org/withachristianwife/friends.*
3https://twilog.org/withachristianwife/hashtags.*
4https://twilog.org/withachristianwife/monthlist.*

・Included URLs For Indexing
https://twilog.org/withachristianwife/date-.*

・Excluded URLs For Indexing
(空白;デフォルト値)

・Config Parameters
(空白;デフォルト値)

・Depth
5(とりあえず 5 とした)

・Max Access Count
2000(投稿日数より大きめの値にする。投稿日数は Twilog の統計ページで確認できる。)

・User Agent
Mozilla/5.0 (compatible; Fess/13.7; +http://fess.codelibs.org/bot.html)(デフォルト値)

・The number of Thread
1

・Interval time
10000ms (デフォルト値)

・Boost
1.0 (デフォルト値)

・Permissions
(デフォルト値)

・Virtual Hosts
(空白;デフォルト値)

・Status
Enabled

・Description
(空白;デフォルト値)

* * *

一応検索できる状態にはなったが、対象から漏れているページがあるような気がする。。

Twilog のページをよく観察すると、日付別ページ内には「すべての年の同日ツイート」というボタンがある。このリンクをクリックすると、年をまたいで例えば5月 13 日のツイートを見ることができるが、こういうページは検索しなくていい。しかし検索対象外にしようとしても、うまくいかなかった(正規表現がうまく働かなかった)。

Twilog のクローリングにはやたら時間が掛かる。投稿数が多い Twitter だと大変だ。Raspberry Pi で、Twilog 専用の Fess を立てようかな。

Twilog の設定は結構苦労した。その過程で学んだことは、「効率よく巡回するにはどうすればいいか」を意識することだ。できるだけ関係ないページはクローリングの対象外にするようにしたりと、いろいろ考えた。