ワイルドカード検索

こんにちは、

Discourse でワイルドカード検索機能を簡単に実装する方法はありますか?

私は職場で小規模なクローズドな Discourse をローカルで運用しています。ユーザーは約 10 名しかおらず、大規模なコミュニティのような投稿数はありません。

この Algolia プラグインは完璧な解決策のように見えますが、フォーラムのインデックス作成が必要で、データをローカルネットワーク外に流出させることができないため、利用できません。

「322X」と検索したときに「DE322X」のようなものを見つけたいのです :slight_smile:

「いいね!」 3

これを実現する方法はいくつかあります。当社の Discourse Data Explorer をご利用ください。

  • まず、この簡単なクエリを実行し、CSVボタンをクリックしてすべての投稿をダウンロードします。その後、別のプログラムでエクスポートされたファイルを検索できます。

    `SELECT id, raw from posts`
    

  • また、すべての投稿コンテンツからキーワードを検索するためのカスタムデータエクスプローラークエリを作成することもできます。

ここでデータエクスプローラーを使用すれば、データがローカルネットワークから流出しないことを保証できます。

「いいね!」 3

ありがとうございます、後で使えるように保存しておきますね :slight_smile:
ただ、これを使うにはチーム全員が検索できるようにする必要があり、毎回 CSV ファイルを出力して必要な情報を探すのは本当に手間がかかるので :confused:

「いいね!」 1

はい、その場合はカスタムクエリを作成し、UI で結果を確認するのが良いでしょう。クエリ作成のアイデアについては、(Superseded) What cool data explorer queries have you come up with? をご覧ください。

「いいね!」 2

十分に小さいサイトであれば、このようなものが機能する可能性があります。

-- [params]
-- string :query

SELECT p.id AS post_id,
       p.user_id
FROM posts p
WHERE p.raw ~* :query
  AND p.deleted_at IS NULL

さらに絞り込みたい場合は、特定のカテゴリや日付範囲を追加することもできます。

記述したら、特定のグループが使用できるようにすることができます。


検索バーから機能することが、理想的にはOPが求めているものであると理解しています。 :slight_smile: より多くの需要がある場合に備えて、これを Feature に移動します。