Wildcard search

AI-generated summary

In a discussion titled “Wildcard search” under the Feature category, user2 asks for an easy way to implement wildcard search (e.g., finding “DE322X” by searching “322X”) on their small, closed, local Discourse instance, without allowing data to leave the network. They considered the Algolia plugin but ruled it out due to privacy concerns. rishabh suggests using the Data Explorer plugin to export posts as CSV or write custom queries to search within the local database, ensuring data stays on-premises. user2 notes this solution isn’t practical for their team, as it would require manual CSV exports for each search. rishabh then recommends creating a custom Data Explorer query visible in the UI for easier team access. JammyDodger provides a sample SQL query using regex (~*) to match partial strings in post content, and suggests restricting access to specific groups. They acknowledge that while this works, the ideal solution would be native wildcard search from the main search bar — and thus move the topic to #feature for potential future development.

Hello,

Is there any (easy) way I could get a wildcard search function working on my discourse?

I run a small closed discourse locally at work. It only has ~10 users so we are not talking post amount like a large community.

I saw this Algolia plugin wich seams like a perfect thing, BUT that means they need to index the forum and we can’t let that data leave the local network.

I want to find stuff like “DE322X” when I search for “322X” :slight_smile:

3 Likes

There might be a couple of ways to do this using our Discourse Data Explorer.

  • You could run this simple query and then click the CSV button to download all posts. Then, you could search across the exported file using a different program.

    `SELECT id, raw from posts`
    

  • You could write a custom data explorer query to search for the keyword across all post content.

Using the Data Explorer here would ensure that your data doesn’t leave the local network.

3 Likes

Thanks, I will save this for later. Might come in handly :slight_smile:
But for this I need the whole team to be able to search stuff and would be a real hassle if everyone needed to dump a CSV file every time to find what they need :confused:

1 Like

Sure, then writing a custom query and seeing the results in the UI would be the way to go. See (Superseded) What cool data explorer queries have you come up with? for inspiration on writing queries.

2 Likes

On a small enough site something like this could work:

-- [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

Though you could maybe add a specific category or date range if you wanted to limit it further.

Once written, you can make it available to certain groups to use:


Though I appreciate it working from the Search bar is ideally what the OP is after. :slight_smile: I’ll slide this over to Contribute > Feature in case there’s more demand for it.