Match spaces in search with underscores in text

AI-generated summary

The discussion revolves around improving search functionality in Discourse. tophee initially suggested making search interpret spaces in a search term as underscores, which would return relevant posts containing the searched phrase with underscores instead of spaces. maja implemented this feature, allowing searches to match variations with different word separators.

Further discussion led to the clarification that this feature already works for site settings and is not necessary for global search. xrav3nz pointed out that site settings already support searching with spaces and that the original request was likely referring to the /search page. codinghorror suggested tabling the request, citing low utility, and sam agreed, removing the pr-welcome label.

When I searched for "enable local logins via email" (a site setting) an hour ago, I was surprised not to find a single post. Now I noticed that there actually are some posts containing enable_local_logins_via_email.

How about having search interpret spaces in a search term also as underscores, i.e. to return posts with enable_local_logins_via_email in a search for "enable local logins via email"?

8 Likes

Agree this will make searching for site settings much easier pr-welcome

5 Likes

I have added this feature FEATURE: Match spaces in search with underscores in text by majakomel · Pull Request #5690 · discourse/discourse · GitHub

I figured out that underscores are not escaped in exact term when searching "enable_local_logins_via_email", so it already matches variations with different word sepataratos like enable local logins via email or enable+local+logins+via+email, I assume this is intended?
With the change I added, spaces in the exact search term match the text where any word separators are used, not only underscores.

7 Likes

Does it also work for mixed separators within the same search term? (though I’m not sure I can come up with a realistic example for that)

You mean if searching for "enable local logins via email" matches "enable+local_logins via-email"? It does.

4 Likes

While we’re at it, I think it might also help if the search term with all dashes eliminated would be treated as equivalent with the search term. What I mean is: a search for “multi-site” should find multisite as if I had searched for “multisite”.

Maja I think that PR is a bit confusing, the change is actually required here:

Not for global search on the site. This is where we hit the issue regularly.

3 Likes

I original thought @tophee was referring to the Site Settings too, but it turns out it already supports searching with spaces:

https://github.com/discourse/discourse/commit/a78458300481a4e4505b829a30ef73d52fdf9b04

then I re-read the OP:

When I searched for "enable local logins via email" (a site setting) an hour ago, I was surprised not to find a single post.

which led me to believe it is actually referring to /search page.

8 Likes

I think we should just table this for now, I don’t feel the original request has much utility.

3 Likes

Agree with you here. Removing pr-welcome from this.

My bad, I did not fully understand the request here and got confused, thanks @xrav3nz and sorry @maja

4 Likes