インスタント検索実験のフィードバック

最近、Discourse で新しい検索エクスペリエンスのプロトタイプを作成するための 2 か月間の実験に着手しました。

\u003chttps://meta.discourse.org/instant-search\u003e でテストしてみてください。

\u003e :speaking_head: 体験についてチャットしたい場合は、通話でのチャット をお気軽にご予約ください。フィードバックをいただけると幸いです :pray:

機能

  • 高速検索

  • トピック、投稿、チャットメッセージ、ユーザーを検索する機能

    • 投稿とトピックの結果にはプライベートメッセージが含まれます
    • チャットメッセージにはプライベートチャンネルとダイレクトメッセージが含まれます
  • タグ、カテゴリ、ユーザー、受信トレイ、チャンネルなどのための UI ベースのフィルター

  • キーワード、セマンティック、ハイブリッド、Hyde 検索モード

FAQ

ページ上の検索がしばらくすると停止する

はい、その通りです。更新してください。

@user#category のような検索構文をサポートしていません

はい、サポートしていません。しかし、これをリリースすると決定した場合、簡単に追加できるものです。

トピックと投稿の検索ターゲットが別々であるのは奇妙な選択です

特に過去 10 年間の Discourse の検索方法に慣れている場合は、その理由がわかります。これをリリースすると決定した場合、両方を同時に実行するモードを作成することも、両方を実行して UI に両方表示することもできます。この実験の制約のため、これは次の両方のユースケースに対応する最も簡単な方法でした。

  • このトピックが存在することを知っていて、それを見つけたいだけです (トピック検索)
  • このクエリのすべての出現を調査したい (投稿検索)

結果の質がまだ十分ではありません

可能なことにはほとんど触れていません。現時点では、カテゴリを優先し、タイトルと本文に重みを割り当てるだけです。既存の検索の洗練度に合わせるには、さらに調整が必要になりますが、さらに進む可能性もあります。残念ながら、多くは JS API 経由で制御されており、使用しているライブラリがここでかなりの制約となっています。

セマンティック / HyDE / ハイブリッドは遅いです

使用している JS ライブラリのいくつかの煩わしさを回避するために、それらに大きなデバウンスを追加しました。これをリリースすると決定した場合、この JS ライブラリが最初に削除される対象となります。全体的な速度については、2 つのリクエストに依存します。最初のものは埋め込み用で、AWS の古いハードウェアで実行されており、これは役に立ちません。レイテンシを削減するために、ミドルウェアプロキシで埋め込みを注入することもできます。これも実験時間の制約によるものです。

技術詳細

  • この実験では、Algolia のオープンソースクローンである Typesense を使用しています。Meta ホスティング上の他のすべてのものと同じ場所にある EC2 インスタンスで実行されています。

  • フロントエンドは Typesense から直接リクエストしません。代わりに、すべての呼び出しは Rack ミドルウェアを使用して Discourse アプリ経由でプロキシされます。

  • 検索バー / 結果 / フィルターは、EmberJS にラップされた InstantSearchJS を使用しています。残念ながら、このライブラリは多くの問題を引き起こしており、これをリリースしても使用しません。

  • サーバーは、Meta のすべてのインデックスを作成するために 7.35 GB の RAM を使用しています。ほとんどが埋め込みによるものであることを覚えておいてください。埋め込みがない場合は 2 GB 未満になります。

「いいね!」 18

それは素晴らしいですね。サイドバーのような場所にリンクを貼っていただけますか?

「いいね!」 6

AWSについて言及されているので、AWSのQ機能の一部が検索を改善するための迅速かつ持続可能な方法になるかどうか疑問に思っていますか?

「いいね!」 2

素晴らしいですね!速度も驚くほどです。

タイトルの単語に部分一致しないようです。

例えば、「Objects type for theme setting」というトピックを探しているとします。
objects を付けないと、トピックが見つかりません。

「いいね!」 5

キーワードオプションはリテラルです。より緩い一致については、セマンティック(類似の意味を探す)またはハイブリッドモード(両方を組み合わせる)を試すことができます。

このプラグインを継続する場合、人々は検索タイプの切り替えに慣れていないため、デフォルトでハイブリッドにするのが理にかなっていると思います。

「いいね!」 7

早速試してみましたが、有望だと感じました。ここ数日、管理バーの実験的なトピックや、コマンドラインからのバックアップ復元トピックを検索していました。最初のケースでは、検索結果で見つけるのに時間がかかりましたが、2番目のケースでは、ブックマークを検索することになりました。しかし、新しい検索では両方が表示され、古い検索よりもはるかに高速です。私にとっては間違いなく改善です :+1:

「いいね!」 4

興味深いですね。さらに探求するのが待ちきれません!今のところ有望に見えます!

将来的には、このようなものが完全な検索機能を完全に置き換えることは可能でしょうか?また、このツールは、ツールバーの上部にある現在の検索ツールの追加機能として機能するのでしょうか?

「いいね!」 3

クールですね。Elasticsearchのようなモバイルの自動補完オプションはありますか?

「いいね!」 3

ありがとうございます。私のミスでした。
最初の投稿でモードについて話していたにもかかわらず、ドロップダウンリストに気づきませんでした。:derp:

これで納得です :+1:.

同意します。検索モードを変更しなければならないウェブサイトを思い出すことができません。
ユーザーとして、ほとんどの状況でうまく機能するデフォルトのモードを期待します。


高度な動的フィルターは本当に素晴らしいです!検索をすばやく絞り込むのに非常に役立ちます。

全体として、チームの皆さん、素晴らしい仕事です :clap:。さらに試してみます。

「いいね!」 5

この実験は、検索機能をゼロから再構築する実現可能性と、この新しいアプローチのトレードオフを調査するために行われました。まだ時期尚早ですが、新しい検索エクスペリエンスが十分に受け入れられれば、Discourseの多くの検索機能(フルページ検索、インラインヘッダー検索、関連トピックの類似トピック検索、ユーザーメンション、ハッシュタグの自動補完など)に統合される可能性があります。

Google検索UIのように、モバイルとデスクトップの両方で、このテクノロジーで簡単に実現できます。

モードは、人々が簡単に比較およびテストできるようにするための実験にすぎません。これがリリースされる場合、モードはユーザーインターフェースではなく、管理者オプションになる可能性が高いです。

「いいね!」 10

それが速いのが気に入りました!

/filter実験や、すべてのフィルターオプションが表示される方法も気に入っています。コンテンツを見つけるためのいくつかの方向性が探求されているようです。これらは一緒に機能するのでしょうか?

最終的に共通の言語があれば、ユーザーとして次のようなことを簡単に理解できるので、物事が非常に単純化されるでしょう。

  • 検索とは何ですか?フィルターとは何ですか?
  • インターフェースでそれぞれをどのように認識しますか?それぞれどこにありますか?
  • シンプル/共通のフィルターセットが表示されるのはいつですか?フルセットにアクセス/展開するにはどうすればよいですか?
「いいね!」 3

出荷されれば、インスタント検索用のバックエンドが /filter を強化します。これは、この実験におけるトピック検索で、すでに私たちが行っていることと基本的に同じです。

「いいね!」 3

差し支えなければ、文脈を理解し、テスト時に正確に何を求めているのかを知るために、いくつか質問させてください。

  • 現在の検索の何が問題で、変更または改善したいのですか?
  • ここで評価しているのは、速度以外に何がありますか?
  • もし検索をゼロから再構築することになった場合、Discourseの検索で他のコンテンツを検索する可能性はありますか?例えば、Discourse内にホストされていないドキュメントなどです。
「いいね!」 3

長年にわたる一般的な問題は以下の通りです。

  1. 検索しても人が探しているものが見つからないという苦情が多く寄せられています。特に、
  1. Discourseの検索は、タイプミスに全く対応していません。

  2. 既存の検索における開発者体験の悪さから、検索は二級市民のような扱いになっています。例えば、チャットはまだ検索できません。

  3. プライベートメッセージの検索におけるユーザー体験の悪さ。

「いいね!」 4

:bangbang: 私も長いリストがありますが、まずは質問と理解を確かめてから、強く主張したいと思いました :joy:

改善が検討されているのを見て、本当に嬉しく思います。参考までに、まだ改善の余地はありますが、私たちの検索機能(Discourseの検索機能)は、その癖も含めて、他の検索体験と比較してユーザーに非常に好評であると常に言われています。

強制的な手段として、私のチームは(少なくともチーム内では)コミュニケーションにDiscourseのみを使用しています。これが今日のチームメンバーからの最初の要望でした。

すぐに思いつくものをいくつか挙げます。

  • DMの検索機能の強化
  • チャットの検索
  • サイト外の検索(または検索範囲の拡張)機能があれば素晴らしいです。多くのコミュニティはDiscourseのドアで止まりません。
  • あなたが言及したように、完全一致検索は時々奇妙な動作をすることがあります。
「いいね!」 5

これは、Typesenseのような既製のソリューションを試した際に、私たちが非常に検討したことです。顧客がドキュメントをデータベースに注入できるようにするか、フロントエンドが互換性のあるガイドラインに従う他のインスタンスから消費できるようにすることで、外部「ドキュメント」に検索を拡張することがはるかに容易になります。

実験でこれら2つをすぐに実現できたのは幸いです!フィードバックありがとうございます。

「いいね!」 3

念のため、この実験は一時的に停止しました。すぐに再開されるはずです。:crossed_fingers: :slight_smile:

「いいね!」 7

戻ってきたよ :eyes:

「いいね!」 4

ここでの返信に加えて、新しいインスタント検索の利用状況をより深く理解するために、短いユーザーリサーチインタビューを実施しようとしています。

  • 全体的な定性的なフィードバック(気に入った点/気に入らなかった点/変更したい点/今後見たい点)
  • 現在の検索との比較
  • 新しい検索を使用している様子を見せていただく

ご協力いただける方は、DMをお待ちしております。通話でチャットも可能です!フィードバックをいただけると幸いです :pray:

「いいね!」 6

また少しの間お休みします :palm_tree: すぐに戻ります :slight_smile:

「いいね!」 2