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/