Closed shishirx34 closed 4 years ago
Likely uses same analyzer as from https://github.com/nuget/nugetgallery/issues/7129
foo.bar
)microsoft.visualstudio.services
. Maybe prefix on both tokens and package id?The query foo.bar
results in Azure Search text like foo.bar (+foo +bar)^3 tokenizedPackageId:foo.bar* packageId:foo.bar^1000
Implementation: dev..loshar-prefix-v3
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8527 | 0.8481 | ❌ |
client curated queries | 0.7619 | 0.7985 | ✔ |
feedback queries | 0.7389 | 0.7712 | ✔ |
The query foo bar
results in Azure Search text like foo bar (+foo +bar)^3 tokenizedPackageId:bar*
Implementation: dev..loshar-prefix-v5
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8482 | 0.8455 | ❌ |
client curated queries | 0.7605 | 0.7934 | ✔ |
feedback queries | 0.7184 | 0.7470 | ✔ |
The query foo bar
results in Azure Search text like foo bar (+foo +bar)^3 packageIdPrefixes:bar*
Implementation: dev..loshar-prefix-v6
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8517 | 0.8477 | ❌ |
client curated queries | 0.7617 | 0.7761 | ✔ |
feedback queries | 0.7364 | 0.7659 | ✔ |
The query foo.bar
results in Azure Search text like foo.bar (+foo +bar)^3 +tokenizedPackageId:foo* +tokenizedPackageId:bar* packageId:foo.bar^1000
Implementation: dev..loshar-prefix-v1
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8527 | 0.8047 | ❌ |
client curated queries | 0.7619 | 0.7864 | ✔ |
feedback queries | 0.7389 | 0.7479 | ✔ |
The query foo.bar
results in Azure Search text like foo.bar (+foo +bar)^3 tokenizedPackageId:foo* tokenizedPackageId:bar* packageId:foo.bar^1000
Implementation: dev..loshar-prefix-v2
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8527 | 0.8498 | ❌ |
client curated queries | 0.7619 | 0.8012 | ✔ |
feedback queries | 0.7389 | 0.7719 | ✔ |
The query foo.bar
results in Azure Search text like foo.bar (+foo +bar)^3 packageIdPrefixes:foo* packageIdPrefixes:bar* packageId:foo.bar^1000
Implementation: dev..loshar-prefix-v4
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8334 | 0.8292 | ❌ |
client curated queries | 0.7626 | 0.7861 | ✔ |
feedback queries | 0.6691 | 0.6946 | ✔ |
These experiments are based off the "Add optional prefix matching to the last raw term" (dev..loshar-prefix-v5)
The query ent
results in Azure Search text like ent tokenizedPackageId:ent*^20
Implementation: dev..loshar-prefix-v7
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8526 | 0.8499 | ❌ |
client curated queries | 0.7627 | 0.8217 | ✔ |
feedback queries | 0.7316 | 0.7556 | ✔ |
These experiments are based off the "Add optional prefix matching to the last raw term" (dev..loshar-prefix-v5)
The query ent
results in Azure Search text like ent tokenizedPackageId:ent*^20
.
The query foo.bar
results in Azure Search text like foo.bar (+foo +bar)^3 packageId:foo.bar* packageId:foo.bar^1000
Implementation: dev..loshar-prefix-v8
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8526 | 0.8523 | ❌ |
client curated queries | 0.7627 | 0.8215 | ✔ |
feedback queries | 0.7316 | 0.7708 | ✔ |
The query foo.bar
results in Azure Search text like foo.bar (+foo +bar)^3 packageId:foo.bar*^20 packageId:foo.bar^1000
Implementation: dev..loshar-prefix-v9
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8526 | 0.8550 | ❌ |
client curated queries | 0.7627 | 0.7624 | ✔ |
feedback queries | 0.7316 | 0.7468 | ✔ |
The query foo.bar
results in Azure Search text like foo tokenizedPackageId:foo*^20
Implementation: dev..loshar-prefix-v10
Data set | Control NDCG score | Treatment NDCG score | Result |
---|---|---|---|
nuget.org curated queries | 0.8526 | 0.8538 | ❌ |
client curated queries | 0.7627 | 0.8038 | ✔ |
feedback queries | 0.7316 | 0.7159 | ✔ |
Currently V8 (dev..loshar-prefix-v8) is the most promising prototype. I will polish the prototype, fix unit tests, and A/B test the change when I come back from vacation.
A/B test at 1% @ 1/16/2020 1:30PM PST A/B test at 10% @ 1/16/2020 2:00PM PST A/B test at 50% @ 1/16/2020 3:00PM PST A/B test at 0% @ 1/28/2020 11:00AM PST
Build: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=3422395 Release: https://devdiv.visualstudio.com/DevDiv/_releaseProgress?_a=release-pipeline-progress&releaseId=564095
Build 2: https://devdiv.visualstudio.com/DevDiv/_build/results?buildId=3426012
Release 2: https://devdiv.visualstudio.com/DevDiv/_releaseProgress?_a=release-pipeline-progress&releaseId=565597
Visual Studio Package Manager UI searches when you pause typing in the search box. Thus, intermediate searches should be pretty good too.