Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Codidact Meta!

Codidact Meta is the meta-discussion site for the Codidact community network and the Codidact software. Whether you have bug reports or feature requests, support questions or rule discussions that touch the whole network – this is the site for you.

Comments on User search only finds names which begin with the search term

Parent

User search only finds names which begin with the search term

+4
−0

The search field at the top of the users page appears to only search from the beginning of a username.

For example, trying to find my username, "trichoplax", succeeds only for prefixes of the name. Searching for the whole word works, but searching for anything less than the whole word only works if it includes the "t" at the start.

Search types

Prefixes

Prefixes such as "tri", "trich", and "trichop" all successfully return "trichoplax" as one of the results.

Postfixes

Postfixes such as "plax", "lax", and "ax" do not include "trichoplax" in the results.

Substrings

Substrings that are neither prefixes nor postfixes such as "rich", "hop", and "chop" also do not include "trichoplax" in the results.

Solutions

This can make results misleading, giving the impression that a username does not exist. I can see 2 potential solutions:

  1. Add a note to the page to make clear that only usernames with the search term as a prefix will be found.
  2. Expand the search to include any username with the search term as a substring (so all of the examples shown above would include "trichoplax" in the results).

I would much prefer solution 2, but if there is any reason to avoid or delay its implementation, solution 1 would be helpful in the meantime.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

2 comment threads

Scalability (8 comments)
Make it clear that exact match also works (4 comments)
Post
+4
−0

celtschk says in a comment that we could show all relevant results and help the searcher by sorting those results in a useful order:

Another [way] to handle it would be to order the results by how well the search term matches. The exact match, if it exists, should certainly be the top result. The score for the remaining maches could then be how much of the user name matches (when typing "tri", and there [exists] a username "trixie", that should come before "trichoplax"). Matches that come earlier in the user name could score higher (so the when searching "tri", "trixie" coms before "matrix". Also you could make search case insensitive, but score the results after matching case (so a search for "Tri" sorts "Trick" above "trial".

Think about search engines: You don't mind getting thousands of hits if the hit you want is on the first page. And if it isn't, you are glad that you still can access further pages.

This makes sense to me. It sounds like the suggested order criteria are

  • Result starts with match
  • Result with shortest length
  • Result case matches search
History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

Clarification about first criterion and order calculation idea (4 comments)
Clarification about first criterion and order calculation idea
celtschk‭ wrote 4 months ago

Actually the position criterion was meant a bit more general than "prefix": I would also show "coffee" before "stoffel" when searching for "of".

Maybe one could calculate a sort penalty as A×(before) + B×(case) +C×(after) where (before) denotes the number of letters before the match, (case) denotes the letters of the matched part where the case doesn't match, (after) denotes the letters after the match, and A, B, C are tweaking constants. As long as all three constants are positive, the three criteria are met.

Michael‭ wrote 4 months ago

Interesting thought! I like the algorithm, but I want to have a think on counterexamples.

celtschk‭ wrote 4 months ago

What exactly do you mean by "counterexamples" in this context?

Michael‭ wrote 4 months ago · edited 4 months ago

Great question. I mean ones where I'd want a different sort order. The only thing I've come up with so far is multi-word names, and it might be a stretch:

  • Search term: tri
  • Want to find: The Great Trichoplax
  • Ranked ahead: Stringify