meilisearch / meilisearch/meilisearch-rust

[v1.3] Search in facet values `facetSearch`

Open
#503 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement good first issue
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:

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:

  1. Create a new entry with this key facet_search_1 containing a call to the new facetSearch method.
    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

  2. Add new code sample facet_search_3 with 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.