Fess で note を検索する

全文検索システムの Fess で note を検索できる状態にするのに苦労した。note は独特の挙動をするページなので、普通に設定するだけでは全然 Fess の検索結果がヒットしない。

試行錯誤を繰り返して、なんとか検索できるようになったので、その設定方法をメモしておく。

今回は私の以下の note を素材にして設定してみる。

with a Christian Wife|note
https://note.com/wacw

やりたいことは、note の全個別投稿を全文検索できる状態にすることだ。

まずは note のサイトの挙動を調べると以下のようなことが分かる。

・個人ページのトップページの URL は https://note.com/wacw である。重要なのは最後にスラッシュ(/)がないことだ。スラッシュ付きでアクセスすると、スラッシュなしの URL にリダイレクトされる(これはトップページ以外のアーカイブページなどでも同様)。この挙動のせいで、クローリング対象 URL をスラッシュありと、スラッシュなしの2種類登録する必要がある。
・個別ページは https://note.com/wacw/n/xxxxxxxxx のような URL 。
・トップページは最初「もっとみる」をクリックしないと続きが表示されない。さらに、スクロールを繰り返さないとすべてが表示されない(これに関しては特に考慮しなくて良いっぽい)。

これを理解した上で実際に Fess の設定をしていく。

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

・Name
note(適当に設定)

・URLs
https://note.com/wacw

・Included URLs For Crawling
https://note.com/wacw
https://note.com/wacw/.*https://note.com/wacw/archives.* で登録すれば効率的にクローリングできそうだが、できなかった。)

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

・Included URLs For Indexing
https://note.com/wacw/n/.*

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

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

・Depth
6(とりあえず 6 とした。5 以下だとすべてをインデックスできない。空白にして無制限にしてもいいかも。)

・Max Access Count
300(投稿数より大きめの値にする。空白にして無制限にしてもいいかも。)

・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
(空白;デフォルト値)

これでクローリングを実行すれば検索対象としてヒットするようになる。

特に note は自分のページの検索ができないので、Fess で検索できるようになったのはすごく便利だ。

参考:
[Chrome 拡張機能] Web Scraper で note の記事一覧を取得する – with a Christian Wife
https://wacw.cf/2020/05/11/list-note-entries-with-web-scraper/