ワイルドカード検索

こんにちは、

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

さらに制限を加えたい場合は、特定のカテゴリや日付範囲を追加することもできるかもしれません。

一度作成すれば、特定のグループで利用できるように設定できます:


ただ、検索バーから機能することが、元のスレッド作成者が求めている理想の形だと理解しています。:slight_smile: 需要がさらにあるかもしれないので、この提案を Contribute > Feature チャンネルに共有しておきます。