Skip to content

Releases: meilisearch/meilisearch-rust

v0.18.0 🦀

31 Aug 14:22
7c7f081
Compare
Choose a tag to compare

This version makes this package compatible with Meilisearch v0.28.0 🎉
Check out the changelog of Meilisearch v0.28.0 for more information on the changes.

💥 Breaking Changes

  • Actions that create a task in Meilisearch now return a TaskInfo and not a Task object anymore. (ex: add_documents). #299
  • get_tasks now returns a TasksResults where the tasks are contained inside the results field. #299
  • task_id in Task andTaskInfo is now a u32 instead of a u64 #299
  • index_uid in Task and TaskInfo is now optional. #299
  • Following taskTypes are renamed: #299
    • documentPartial -> documentAdditionOrUpdate
    • documentAddition -> documentAdditionOrUpdate
    • clearAll -> documentDeletion
  • Possibility to filter the tasks when using get_tasks on indexUid, status and type. #299
  • The returned keys when using get_keys_with get_keys or get_key now returns an additional name and uid` field. #313
  • The response from get_keys_with and get_keys is now a KeysResults instead of Vec<Key>. #313
  • update_key only accepts updates on the description and the name #313
  • client.get_indexes now returns a IndexesResults instead of a Vec<Index> #315
  • client.get_indexes_raw now returns a Value instead of a Vec<Value>#315
  • Index structure: #315
    • uid is now a string and not a Arc<string> and is public
    • client is now public
    • primary_key is now public
    • name field is removed
  • In SearchResults nbHits is now named estimated_total_hits #316
  • In SearchResults exhaustive_nb_hits is removed. #316
  • In SearchResults exhaustive_facets_count is removed. #316
  • In SearchQuery matches is now named show_mathes_position and the method with_matches is now named with_show_matches_position #316
  • In SearchResults matches_info is now named matches_position #316
  • In SearchQuery facets_distribution is now named facets #316
  • In SearchResults facets_distribution is now named facet_distribution #316
  • client.get_documents and client.get_documents_with now returns a DocumentsResults instead of a Vec<T> #315
  • client.get_documents has no filtering parameters anymore, use get_documents_with to filter.
  • in client.generate_tenant_token, apiKeyPrefix is now named apiKeyUid and expects the uid of the signing API key as a value. The prototype of the function changed accordingly. #318
      pub fn generate_tenant_token(
         api_key_uid: String,
         search_rules: Value,
         api_key: impl AsRef<str>,
         expires_at: Option<OffsetDateTime>,
      ) -> Result<String, Error>
  • Method get_dump_status removed on Dumps struct #319
  • create_dump now returns a TaskInfo instead of a DumpInfo #319
  • Remove the sync feature and use Arc everywhere by default (#251) @irevoire

🐛 Enhancements

  • Creation of a method client.get_tasks_with and a struct TasksQuery based of this that lets you filter tasks. #299
  • Creation of client.get_keys_with() that lets you paginate on limit (default: 20), offset (default: 0). #313
  • create_key accepts a custom name and a custom uuid to create deterministic API keys. #313
  • client.get_indexes_with takes as argument IndexesQuery giving you the possibility to set limit and offset. #315
  • client.get_indexes_raw_with takes as argument IndexesQuery giving you the possibility to set limit and offset. #315
  • IndexUpdater struct gives you the possibility to create an instance of all the fields you would like to change in an Index and then execute the update: `IndexUpdater::new(&client).with_primary_key("my_id".to_string()).execute().await) #315
  • IndexesQuery struct allows you to define the filtering applied during the get_all_indexes_with call. #315
  • new method client.get_documents_with takes as argument DocumentsQuery giving the possibility to set limitm offset and the fields that you want to see in the returned documents (default: all fields). #315
  • new method index.get_document_with takes as argument DocumentQuery giving the possibility to chose the fields you want to see in your returned documents. #326

Thanks again to @SorenHolstHansen, @abhizer, @bidoubiwa, @brunoocasali, @irevoire ! 🎉

v0.17.0 🦀

09 May 12:28
af79d8b
Compare
Choose a tag to compare

This version makes this package compatible with Meilisearch v0.27.0 🎉
Check out the changelog of Meilisearch v0.27.0 for more information on the changes.

⚠️ Breaking changes

🚀 Enhancements

Analytics is enabled by default in the server, but you can disable them by following this guide
Also, of course, every analytics data we collect are ANONYMOUS read the guide for more information.

Thanks again to @abhizer, @bidoubiwa, @irevoire, @salugi and a1! 🎉

v0.16.0 🦀

25 Apr 20:37
0d1a82e
Compare
Choose a tag to compare

⚠️ Breaking changes

  • Use an OffsetDateTime on the ClientStats (#244) @irevoire
  • Fixed formatting with clippy & Removed Document trait (#267) @irevoire

🚀 Enhancements

🐞 Bug fixes

Misc

  • Create an example showing how to update the Settings (#245) @irevoire

Thanks again to @abhizer, @bidoubiwa, @brunoocasali, @irevoire, and Adrian Coutsoftides! 🎉

v0.15.0 🦀

16 Feb 15:25
d4813d1
Compare
Choose a tag to compare

⚠️ Breaking changes

🚀 Enhancements

Thanks again to @irevoire! 🎉

v0.14.0 🦀

10 Feb 17:46
d13db02
Compare
Choose a tag to compare

This package version is compatible with Meilisearch v0.25.0 🎉

⚠️ Breaking changes

  • This package is only compatible with Meilisearch v0.25.0 and later, but not with v0.24.0 and older. Be sure you are using at least MeiliSearch v0.25.0 or newer before doing the upgrade.
    Why isn't it compatible?

    • MeiliSearch v0.25.0 uses Authorization header instead of X-Meili-API-Key
    • MeiliSearch v0.25.0 has a new API regarding the updates that have been renamed into tasks. More details in the following points
  • Remove delete_index_if_exists and get_or_create_index (#225) @irevoire

  • Redesign update API to task API (#225) @irevoire

    • All the actions on indexes are now asynchronous check out the task API references and the asynchronous tasks guide
      • create_index(), update_index(), delete_index() are now asynchrone and return a task response instead of an Index.
      • index.create and index.delete from index return a task.
      • wait_for_pending_update() is renamed into wait_for_task and is accessible from index and from client.
      • the current index.wait_for_task() method call /tasks/:uid
      • index.get_update_status is renamed index.get_task
      • index.get_all_update_status is renamed index.get_tasks
      • new method client.wait_for_task() call /tasks/:uid
      • new method client.get_tasks that calls /tasks
      • new method client.get_task that calls /tasks/:uid
        Notes: The only two methods that now return an Index are client.index() and client.get_index()
  • Change client.get_keys does not return an object of keys, but an array of keys. Check out keys API references.

  • The Progress type have been removed entirely (#227) @irevoire

🚀 Enhancements

  • Addition related to API keys (#227) @irevoire
    • Granular management of API keys is now added to MeiliSearch. New methods have been created to manage this:
      • client.get_key get information about a specific API key.
      • client.create_key create a new API key.
      • client.delete_key delete an API key.
      • client.update_key update an API key.
    • Check out the documentation guide.
  • A KeyBuilder type has been added to eases the creation of keys (#227) @irevoire
  • An Action enum has been created to represents all the possible action (#227) @irevoire
  • Add method wait_for_completion directly on the Task (#225) @irevoire

Thanks again to @alallema, @curquiza, @irevoire, and @moises-marquez! 🎉

v0.13.0 🦀

07 Dec 11:05
75f9420
Compare
Choose a tag to compare

⚠️ Breaking changes

  • assume_index() is renamed into index() (#211) @alallema: we recommend using index() instead of get_index() which does not do any HTTP call

Improvement

  • add fetch_info method that fetches the information of the index (#211) @alallema

Thanks again to @alallema! 🎉

v0.12.0 🦀

18 Nov 16:47
75cd43a
Compare
Choose a tag to compare

This version is compatible with MeiliSearch v0.24.0

⚠️ Breaking changes

  • Rename message into error_message in the error handler + update the errorCode (#204) @curquiza
  • formatted_result is now Option<Map<String, Value>> instead of Option<T> (#205) @curquiza

🚀 Enhancements

🐛 Bug Fixes

Thanks again to @Hard-Coder05, @curquiza, @ginglis13 ! 🎉

v0.11.0 🦀

12 Oct 10:28
82d1a80
Compare
Choose a tag to compare

This version is compatible with MeiliSearch v0.23.0

Changes

Breaking changes ⚠️

Thanks again to @mk1107, @sccalabr and @vishnugt! 🎉

v0.10.2 🦀

20 Sep 08:33
76bcb90
Compare
Choose a tag to compare

Changes

Thanks again to @adaszko, and @sanders41 for the test addition! 🎉

v0.10.1 🦀

13 Sep 15:09
aeea3c4
Compare
Choose a tag to compare

This package version is compatible with MeiliSearch v0.22.0 🎉

Changes

  • Changes related to the next MeiliSearch release (v0.22.0) (#169). More about sorting.
    • Add sortable attributes methods: get_sortable_attributes, set_sortable_attributes, reset_sortable_attributes (#171) @curquiza
    • Add sort parameter during search (#172) @curquiza