タイムラインの方でも一部予告していましたが,handon.clubに日本語全文検索を導入しました。全文検索にはチューニングが必要なため,当面はテスト期間として運用しながらチューニングをおこなうこととします。以下で詳細をご説明しますが,不明点はお気軽に管理人までお知らせ下さい。
できること
handon.clubのWebページから,日本語キーワードで以下を検索することができます。
- 自分の投稿
- 他人の投稿のうち,自分がお気に入りに登録した投稿
- 他人の投稿のうち,自分がブーストした他人の投稿
- 他人の投稿のうち,自分に対するリプライ/ダイレクトメッセージ
ローカルタイムライン全体の検索はできません。
なお,これまで通り,以下の検索も可能です(これは,今回の試験運用とは関係ありません。もともと出来ていました)。
- ハッシュタグ
- ユーザID
参考までに,確実に使われているであろうハッシュタグを検索しても,必ず「0人がトゥート」と表示されると思います。これはバグです。検索結果に出てきたハッシュタグをクリックすることで,期待した結果が得られます。
検索のやり方
大半のMastodonクライアントからは検索できないと思ってください。Webページから検索機能を使ってください。
なお,Mastodonクライアントに検索機能が付いている場合がありますが,その検索は「handon.clubが提供する検索機能」ではなく,「他のサービスが提供する検索機能」です。そのため,今回追加した検索機能とは関係ありません。「他のサービスが提供する検索機能」では,handon.clubのすべてのトゥートをキャッシュ出来ているわけではありませんので,適切な結果が得られない可能性があります。
では,「handon.clubが提供する検索機能」について,実際の検索のやり方を説明します。細かい方法は,画面幅(PCまたはスマホ)によって異なります。PCのような画面幅が広い環境では,発言欄のうえにある「検索」窓にキーワードを入力してください。
スマホのような画面幅が狭い環境では,「虫眼鏡」のアイコンを押すと,PCと同じ「検索」窓が出現します。ここにキーワードを入力してください。
この検索窓を使った場合の検索結果イメージを以下に示します。この結果は管理人のアカウントでログインした状態で検索したものですので,他のユーザが検索すると違う結果が得られる点にはご注意ください。いずれにしろ,他人の発言であっても,リプライやお気に入りは表示されていることがわかるかとおもいます(ここで,他人の発言は,他のインスタンスでも表示されます)。
テスト期間中の注意事項
日本語の検索には若干のチューニングが必要です。そのため,テスト運用中には,一時的に検索結果が得られなくなったり,おかしな検索結果となる場合があります。具体的には,以下の様な制約があります。
- 検索結果が得られない場合がある
- 検索したワードが含まれていないにもかかわらず結果に表示される/結果に漏れがある *1
また,テスト運用中に限らず,本運用の場合においても,以下の制約事項を設ける予定です。
やったこと
検索機能は,Mastodon自体にもある程度のものはあるのですが,本格的に検索できるようにするためにはElasticsearchが必要となります。そのため今回は,Elasticsearchを導入しました。具体的な設定等は以下のとおりです。