Thread overview
Bad search on code.dlang.org
Nov 11, 2020
frame
Nov 11, 2020
rinfz
Nov 11, 2020
frame
Nov 11, 2020
user1234
Nov 12, 2020
aberba
November 11, 2020
I wonder no one noticed it but as I mentioned in another thread: the search is insufficient

Looking for example "sql" will not output packages with "mysql". You have to search with explicit names instead. I have no idea where I can report this.
November 11, 2020
On Wednesday, 11 November 2020 at 16:34:00 UTC, frame wrote:
> I wonder no one noticed it but as I mentioned in another thread: the search is insufficient
>
> Looking for example "sql" will not output packages with "mysql". You have to search with explicit names instead. I have no idea where I can report this.

https://github.com/dlang/dub-registry/issues/93 related?

Another good example is searching for jwt doesn't include e.g. fastjwt in it's results.
November 11, 2020
On Wednesday, 11 November 2020 at 16:34:00 UTC, frame wrote:
> I wonder no one noticed it but as I mentioned in another thread: the search is insufficient
>
> Looking for example "sql" will not output packages with "mysql". You have to search with explicit names instead. I have no idea where I can report this.

Yes, seen that two days ago too. Try "hidap" (0 packages) and "hidapi" (1 package).
Someone who is not aware might just think that there's no D library for HID devices.
There's a defunkt PR that should fixed that https://github.com/dlang/dub-registry/pull/481, but no official issues apparently (https://github.com/dlang/dub-registry/issues?q=search+).
November 11, 2020
On Wednesday, 11 November 2020 at 16:47:48 UTC, rinfz wrote:

> https://github.com/dlang/dub-registry/issues/93 related?

Ah thanks, I did not know that the web frontend is also linked to dub-registry repo.
November 12, 2020
On Wednesday, 11 November 2020 at 16:34:00 UTC, frame wrote:
> I wonder no one noticed it but as I mentioned in another thread: the search is insufficient
>
> Looking for example "sql" will not output packages with "mysql". You have to search with explicit names instead. I have no idea where I can report this.

I'm pretty sure the reason the dub registry search is inaccurate is due to the limitation of MongoDB's built-in Text search. The $text operator only due well for the EXACT match [1] so partials might not work. I personally don't rely on it for search functionality. You have to give it the exact word you're looking for in MOST cases.

From [1]:
> For case insensitive and diacritic insensitive text searches, the $text operator matches on the complete stemmed word. So if a document field contains the word blueberry, a search on the term blue will not match. However, blueberry or blueberries will match.

Their Cloud offering however comes with a special search product [2][3] (elasticsearch under the hood... if I remember correctly) for accurate search.

Another alternative is to roll out a self-hosted elasticsearch instance for text search.

MeiliSearch [4], built-in rust, is simple and clean for my taste. It's what I'm going to use for my little side-project.


1. https://docs.mongodb.com/manual/reference/operator/query/text/

2. https://www.mongodb.com/atlas/search

3. https://www.youtube.com/watch?v=kZ77X67GUfk

4. https://www.meilisearch.com/