meilisearch / meilisearch/meilisearch-rust
[v1.3] Search in facet values `facetSearch`
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 434
- Forks
- 114
- PR merge metrics
- No merged PRs in 30d
Description
⚠️ This issue is generated, it means the examples and the namings do not necessarily correspond to the language of this repository.
Also, if you are a maintainer, please add any clarification and instructions about this issue.
Sorry if this is already wholly/partially implemented. Feel free to let me know about the state of this issue in the repo.
Related to https://github.com/meilisearch/integration-guides/issues/280
This issue is divided into two sections, first, you need to make the implementation, and second, you must update the code-samples (no one likes outdated docs, right?).
New implementation
Related to:
- issue: https://github.com/meilisearch/meilisearch/issues/3611
- discussion: https://github.com/meilisearch/product/discussions/515#discussioncomment-6240970
- spec: https://github.com/meilisearch/specifications/pull/246
Users of bigger datasets could have difficulty interacting with vast lists of facets data since, until today, it was not possible to search on them.
To introduce this feature into the SDKs, we must:
Create a new method called facetSearch(facetSearchQuery)/facet_search(facetSearchQuery)
Besides all the other parameters that a regular SearchQuery can take. The new FacetSearchQuery can take a facetName, facetQuery, filter, q, matchingStrategy.
Params definition:
facetName:
type: string
required: true
example: '"genres"'
facetQuery:
type: string
example: '"Horror"'
q:
type: string
default: '""'
example: '"Back to the future"'
matchingStrategy:
type: string
default: 'last'
filter: // https://www.meilisearch.com/docs/learn/fine_tuning_results/filtering
type: array
example: '"groupId = 1 AND genre = adventure"'
Code samples
Inside of this file: .code-samples.meilisearch.yml:
-
Create a new entry with this key
facet_search_1containing a call to the newfacetSearchmethod.
Refer to this curl example and translate it by using the Rust methods: https://github.com/meilisearch/documentation/blob/e4fdc3d485c22e31a045b8a71bacf18b6a7d50e0/.code-samples.meilisearch.yaml#L1069 -
Add new code sample
facet_search_3with this content:
Refer to this curl example and translate it by using the Rust methods: https://github.com/meilisearch/documentation/blob/e4fdc3d485c22e31a045b8a71bacf18b6a7d50e0/.code-samples.meilisearch.yaml#L1087
TODO:
- Add the new method
facetSearch - Update the code-samples accordingly
- Add integration tests
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read the linked facet-search specification and related Meilisearch issues, then inspect the SDK's existing Rust search methods. Implement the requested facetSearch/facet_search entry point and parameters, update .code-samples.meilisearch.yml using the referenced examples, and add the requested integration tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- api
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100