You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently field scoped queries (such as Tags:"fable" Tags:"fable-binding") are combined roughly with an OR logic. This basically Lucene behavior where a document (package) matching multiple search teams gets a boost but a document containing either is also matched but at a lower base score (tf-idf, etc.). The reason you're not seeing Glutinum.Fuse at the top (it matches both tags) is because the download count is very low compared to some packages that match just Tags:"fable". We use download count as a strong boost for packages in order for popular packages to be favored, generally. This has proven to be the best for the most users.
This behavior is in contrast with unscoped terms combining roughly with AND logic (after tokenization). Searching for fable binding returns a smaller result set because of this.
It sounds like you're asking for either #7195 or #3306 with a twist on field scope query behavior.
I agree that this is not a great status quo. Having "AND" logic for non-field scoped queries and "OR" for field scoped queries is inconsistent and hard to reason about. From our data, however, field scoped queries are a microscopic fraction of total search queries so it's hard to prioritize this work over other feature requests.
Some suggestions for the reader, while you wait.
If these are not typical .NET dependency packages, consider a custom package type. You can do a strict filter this way: https://www.nuget.org/packages?packagetype=fable. Note that such packages are rejected by the Install button in Visual Studio package management UI so proceed with caution and testing.
Consider a term that does not have a separator such as fablebinding. This will not be split by camelcase or hyphen to make the matching verbatim. Then use a non-field scoped query like fable fablebinding. Not great but an option.
Related Problem
Cannot search packages by using multiple tags in the query.
The Elevator Pitch
For Fable,
an F# to JavaScript, Python, Dart, etc. compiler we are hosting packages on NuGet.
Users have a hard time discovering what Fable packages are available. We have the idea of using tags like:
fable
fable-binding
fable-library
fable-javascript
fable-dart
fable-python
to make it possible to filter the packages that the user want to search.
The idea is that if the user want to search for a Fable package, we can search by the tag
fable
.If he want all the library which works for both JavaScript and Dart, he can search using
fable-library
ANDfable-javascript
ANDfable-dart
.However, right now the search API and NuGet.org only support by searching by one tag.
Taking the following package available on NuGet.org
If we search by
fable
ANDfable-binding
then we get 360 results instead of only 1. Searched valueTags:"fable" Tags:"fable-binding"
If we search by
fable-binding
ANDfable
then we get 1 results. Searched valueTags:"fable-binding" Tags:"fable"
This leads me to believe that only the first tag is actually used.
Additional Context and Details
No response
The text was updated successfully, but these errors were encountered: