類似トピックを提供する API が必要です。
要件:トピックタイトルがあれば、類似トピックを取得できるようにしたいです。
トピックの JSON をリクエストすると、suggested_topics というセクションが含まれていることがわかります。
https://meta.discourse.org/t/144806/2.json:
タイトルからトピック ID への検索は、以下の検索を使用して行うことができます:
関連記事を相互に関連付けるために、以下を使用することをお勧めします。タイトルからトピックIDへの変換は検索で可能です:
meta.discourse では動作していますが、当フォーラムでは動作しません。当フォーラムの URL は forum.crio.do です。
forum.crio.do/t/8497/2.json にアクセスしても結果が返ってきません。
これはプライベートコミュニティのようですので、認証されていないリクエストではデータが返ってきません。Meta では Is there is any open API for getting similar topic in discourse? - #2 by RGJ が機能するのは、コンテンツが公開されているためです。
リクエストを api_key と api_username で認証する方法の詳細については、Discourse REST API Documentation および Use the Discourse API ruby gem をご覧ください。
そのトピックには投稿が 1 つしかないため、2 番目の投稿は存在しません。
https://forum.crio.do/t/8497/1.json を使用する必要があります。
常に t/<topic_id>/1.json を使用できます。
また、クローズドコミュニティであるため、API キーを使用する必要があります。
外部ソースから渡される任意のテキストに対しても、同様に機能させることは可能でしょうか?つまり、実際に指定されている既存のトピックに基づくのではなく、API に提供されたテキストに基づいて、既存のトピックの候補リストを返すために、既存の類似性マッチ関数を利用できるのでしょうか?
もし馬鹿げた質問でしたら申し訳ありません。私は開発者ではありませんが、検討している機能リクエストについて開発者と話す前に情報を集めたいと考えています。アイデアとしては、例えば Intercom(この場合はオープンソースの代替案)を Discourse フォーラムと連携させ、チャットボックスに質問が入力された際に、Discourse のトピックの候補を検索し、答えを見つけるか質問を向けるべき可能性のある場所として提示できるようにすることです。これは、Intercom が既にナレッジベースにアクセスして回答候補を提供できる仕組みに似ています。
Discourse は従来の「ウェブページ」ではなく JavaScript アプリケーションであるため、Discourse 上のあらゆる操作を自動化できます。この場合、高度な検索ページで行うユーザーインターフェース操作を再現します。具体的には以下の通りです:
なるほど、その可能性はあったと思います。つまり、コンポーザープレビューにある「類似トピック」機能は、通常の検索と本質的には同じで、ユーザーが投稿したトピックの内容を検索条件として渡しているだけということでしょうか?
私のユースケースでは、ユーザーのメッセージ内容を通常の検索機能に渡し、関連する可能性のあるトピックとして X 件のヒット結果を返したいと考えています(ここで使っている用語が正確でないかもしれませんが、基本的な考え方が合っているかどうか知りたいだけです
)
そのトピックで詳しく説明されているように、ウェブインスペクタを使用して、コンポーザーに入力し、関連する類似トピックのダイアログをトリガーする際に何が起こるかを監視してください。
これは「通常のサイト検索」と本質的に異なるものだと考えています。なぜなら、この検索は「これらのいずれかに一致するものを何でも返し、出現頻度や複数の一致などに基づいて結果を順序付ける」という検索としてマークされるからです。
ありがとうございます!返信をいただく前に少しテストを行いましたが、検索結果や類似トピックの結果が若干異なっていることに気づきました。それは興味深いですね。とはいえ、ここで示した情報は、私が現在話し合っているグループに対してDiscourseの導入を提案するのに十分なものだと思います。

