Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Azure Search] Update index to support exact match semantics #6920

Closed
3 tasks
loic-sharma opened this issue Feb 25, 2019 · 0 comments
Closed
3 tasks

[Azure Search] Update index to support exact match semantics #6920

loic-sharma opened this issue Feb 25, 2019 · 0 comments
Assignees

Comments

@loic-sharma
Copy link
Contributor

loic-sharma commented Feb 25, 2019

  • Make the owners field an exact match. This is exact match & case insensitive
  • Add field for the package's id to support packageId search queries. This is exact match & case insensitive
  • Add field for the package's normalized version to support version search queries. This is exact match, case insensitive, & semver2 normalized

Split off from #6456

Exact matches will be done using KeywordAnalyzer, update index with [Analyzer(AnalyzerName.AsString.Keyword)]. This is case sensitive!

Owner: Microsoft
Owner: azure-sdk
Package ID: kre-mono

All package ids: http://nugetdev0.blob.core.windows.net/ng-search-data/downloads.v1.json
All owners: http://nugetdev0.blob.core.windows.net/ng-search-data/owners.json

@loic-sharma loic-sharma self-assigned this Feb 25, 2019
@loic-sharma loic-sharma changed the title [Azure Search] Update index to support NuGet search queries [Azure Search] Update index to support exact match semantics Feb 25, 2019
@loic-sharma loic-sharma added this to the S149 - 2018.02.18 milestone Feb 27, 2019
loic-sharma added a commit to NuGet/NuGet.Services.Metadata that referenced this issue Mar 1, 2019
Adds the following custom analyzers:

1. The `ExactMatchCustomAnalyzer` that allows for case insensitive exact matches. This is used for the `packageId`, `version`, `owner`, and `owners` query fields.
2. The `PackageIdCustomAnalyzer` that splits on non alpha-numeric characters and camel casing. This is used by the `id` query field. This corresponds to the existing [`IdentifierAnalyzer`](https://github.com/NuGet/NuGet.Services.Metadata/blob/master/src/NuGet.Indexing/IdentifierAnalyzer.cs)
3. The `DescriptionCustomAnalyzer` that splits on non alpha-numeric characters and camel casing and removes stopwords (like "the" or "and"). This is used by the `title`, `description`, `author`, `authors`, and `summary` query fields. This corresponds to the existing [`DescriptionAnalyzer`](https://github.com/NuGet/NuGet.Services.Metadata/blob/master/src/NuGet.Indexing/DescriptionAnalyzer.cs)

Addresses NuGet/NuGetGallery#6920 and NuGet/NuGetGallery#6922

Also, see functional tests: #487
@skofman1 skofman1 closed this as completed Mar 6, 2019
joelverhagen pushed a commit to NuGet/NuGet.Jobs that referenced this issue Oct 26, 2020
Adds the following custom analyzers:

1. The `ExactMatchCustomAnalyzer` that allows for case insensitive exact matches. This is used for the `packageId`, `version`, `owner`, and `owners` query fields.
2. The `PackageIdCustomAnalyzer` that splits on non alpha-numeric characters and camel casing. This is used by the `id` query field. This corresponds to the existing [`IdentifierAnalyzer`](https://github.com/NuGet/NuGet.Services.Metadata/blob/master/src/NuGet.Indexing/IdentifierAnalyzer.cs)
3. The `DescriptionCustomAnalyzer` that splits on non alpha-numeric characters and camel casing and removes stopwords (like "the" or "and"). This is used by the `title`, `description`, `author`, `authors`, and `summary` query fields. This corresponds to the existing [`DescriptionAnalyzer`](https://github.com/NuGet/NuGet.Services.Metadata/blob/master/src/NuGet.Indexing/DescriptionAnalyzer.cs)

Addresses NuGet/NuGetGallery#6920 and NuGet/NuGetGallery#6922

Also, see functional tests: NuGet/NuGet.Services.Metadata#487
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants