Skip to content

Releases: meilisearch/meilisearch-php

v0.24.0 🐘

11 Jul 15:59
072d430

Choose a tag to compare

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

💥 Breaking changes

⚠️ Small disclaimer: The rawSearch (and other raw* functions) are a direct connection between your PHP application and Meilisearch, you may find changes that are not present in this section.

  • MeiliSearch\Client->getDumpStatus method was removed. (#336) @brunoocasali
  • MeiliSearch\Client->getIndexes method now return a object type IndexesResults. (#341), (#345) @brunoocasali
  • MeiliSearch\Client->generateTenantToken now require a String apiKeyUid which is the uid of the Key instance used to sign the token. (#343) @brunoocasali
  • MeiliSearch\Client->createDump now responds with Task object. (#336, #337) @brunoocasali
  • MeiliSearch\Client->getKeys method now return a object type KeysResults. (#343), (#338) @brunoocasali
  • MeiliSearch\Client->updateKey now can just update a description and/or name, if there are other key/value will be silently ignored. (#343), (#338) @brunoocasali
  • MeiliSearch\Client->getTasks method now return a object type TasksResults. (#337), (#346) @brunoocasali
  • MeiliSearch\Index->getTasks method now return a object type TasksResults. (#337), (#346) @brunoocasali
  • MeiliSearch\Index->search facetsDistribution is now facets (#332) @curquiza
  • MeiliSearch\Index->search matches is now showMatchesPosition (#332) @curquiza
  • MeiliSearch\Index->getDocuments method now return a object type DocumentsResults.
  • MeiliSearch\Index->getDocuments method now accepts a object as a parameter and offset, limit, attributesToRetrieve were not longer accepted.
  • exhaustiveNbHits, facetsDistribution, exhaustiveFacetsCount were removed from SearchResult. (#332) @curquiza

🚀 Enhancements

  • MeiliSearch\Client->getIndexes accepts a object IndexesQuery to filter and paginate the results.
  • MeiliSearch\Client->getKeys accepts a object KeysQuery to filter and paginate the results. (#343), (#338) @brunoocasali
  • MeiliSearch\Client->getKey accepts both a Key#uid or Key#key value. (#343), (#338) @brunoocasali
  • MeiliSearch\Client->getTasks accepts a object TasksQuery to filter and paginate the results. (#337), (#346) @brunoocasali
  • MeiliSearch\Index->getTasks accepts a object TasksQuery to filter and paginate the results. (#337), (#346) @brunoocasali
  • MeiliSearch\Client->createKey can specify a uid (optionally) to create a new Key. (#343), (#338) @brunoocasali
  • MeiliSearch\Index->getDocument accepts a fields list to compact the remap the response. (#340), (#344) @brunoocasali
  • MeiliSearch\Index->getDocuments accepts a object DocumentsQuery to filter and paginate the results. (#340), (#344) @brunoocasali
  • Key has now a name and uid string fields. (#343), (#338) @brunoocasali
  • estimatedTotalHits, facetDistribution were added to SearchResult (#332) @curquiza
    • nbHits is still defined and will contain the same value as estimatedTotalHits.
  • Sending a invalid uid or apiKey will raise InvalidApiKeyException. (#343) @brunoocasali

Thanks again to @brunoocasali, @curquiza! 🎉

v0.23.3 🐘

21 Jun 16:15
e993256

Choose a tag to compare

🚀 Enhancements

🐛 Bug Fixes

  • Fix errors assigning bool to DateTime properties in Keys (#326) @Nextra

Thanks again to @Nextra, @brunoocasali ! 🎉

v0.23.2 🐘

09 May 11:35
e6048db

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 about the changes.

🚀 Enhancements

  • Add new methods for the new typo tolerance settings #316 @alallema
    index.getTypoTolerance()
    index.updateTypoTolerance(params)
    index.resetTypoTolerance()
  • Ensure nested field support #317 @alallema
  • Add new search parameters highlightPreTag, highlightPostTag and cropMarker #318 @alallema

🐛 Bug Fixes

v0.23.1 🐘

17 Mar 09:32
dcd198b

Choose a tag to compare

🐛 Bug Fixes

  • Fix authorization header when no api key is provide (#305) @alallema

Thanks again to @alallema ! 🎉

v0.23.0 🐘

14 Mar 15:24
8a38493

Choose a tag to compare

This version makes this package compatible with MeiliSearch v0.25 up to v0.26.0
🎉 Check out the changelog of MeiliSearch v0.26.0 for more information about the ⚠️ Breaking changes about the flag and dump new behavior. (#292)

⚠️ Breaking changes

🚀 Enhancements

  • Added new method generateTenantToken() as a result of the addition of the multi-tenant functionality.
    This method creates a JWT tenant token that will allow the user to have multi-tenant indexes and thus restrict access to documents based on the end-user making the search request. (#297) @alallema

Thanks again to @TeddyBear06, @alallema, @jonatanrdsantos! 🎉

v0.22.0 🐘

14 Feb 16:16
0229ce1

Choose a tag to compare

This package version is compatible with MeiliSearch v0.25.0

⚠️ Breaking changes

🚀 Enhancements

Thanks again to @alallema, @brunoocasali, @mmachatschek and @shahlin! 🎉

v0.21.0 🐘

12 Jan 15:13
4816d09

Choose a tag to compare

This package version is compatible with MeiliSearch v0.25.0 (#370)

⚠️ 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 (#265)
    • MeiliSearch v0.25.0 has a new API regarding the updates that have been renamed into tasks. More details in the following points
  • Remove deleteIndexIfExists method (#266) @alallema
  • Remove getOrCreateIndex method (#267) @alallema
  • Redesign update API to task API (#268) @alallema
    • All the actions on indexes are now asynchronous check out the task API references and the asynchronous tasks guide
      • createIndex(), updateIndex(), deleteIndex() are now asynchrone and return a task response instead of an Index.
      • index.create and index.delete from index return a task.
      • waitForPendingUpdate() is renamed into waitForTask and is accessible from index and from client.
      • the current index.waitForTask() method call /tasks/:uid
      • index.getUpdateStatus is renamed index.getTask
      • index.getAllUpdateStatus is renamed index.getTasks
      • new method client.waitForTask() call /tasks/:uid
      • new method client.waitForTask()
      • new method client.getTasks that calls /tasks
      • new method client.getTask that calls /tasks/:uid
        Notes: The only two methods that now return an Index are client.index() and client.getIndex()
  • Change client.getKeys does not return an object of keys, but an array of keys. Check out keys API references.
  • Changes related to the next MeiliSearch release (v0.25.0) (#261)

🚀 Enhancements

  • Extract functionality to a more specific class (#272) @jonatanrdsantos
  • Addition related to API keys (#269) @alallema
    • Granular management of API keys is now added to MeiliSearch. New methods have been created to manage this:
      • http.patch use by updateKey
      • client.getKey get information about a specific API key.
      • client.createKey create a new API key.
      • client.deleteKey delete an API key.
      • client.updateKey update an API key.
    • Check out the documentation guide.

Thanks again to @alallema, @curquiza, @jonatanrdsantos, @norkunas, and Jonatan Santos! 🎉

v0.20.0 🐘

17 Nov 20:52
0b592c1

Choose a tag to compare

⚠️ Breaking changes

This package version is compatible with MeiliSearch v0.24.0 and later, but not with v0.23.1 and older. Be sure you are using at least MeiliSearch v0.24.0 or newer before doing the upgrade.

🚀 Enhancements

Thanks again to @Hard-Coder05, @Sukriti-sood, @alallema, @almasaeed2010, @curquiza, @edinapap, @kjellknapen, @mheap, @srichter and Kjell Knapen! 🎉

v0.19.3 🐘 [ABANDONED]

16 Nov 22:31
60ba4ce

Choose a tag to compare

⚠️ Since this release is breaking for a user using MeiliSearch v0.23.1 or older and only work for v0.24.0 or later, we abandoned it.
If you are using MeiliSearch v0.23.1 or older, please still use meilisearch-php v0.19.2
If you are using MeiliSearch v0.24.0 or newer, please still use meilisearch-php v0.20.0
Sorry for this!

This package version is compatible with MeiliSearch v0.24.0

🚀 Enhancements

Thanks again to @Hard-Coder05, @Sukriti-sood, @alallema, @almasaeed2010, @curquiza, @edinapap, @kjellknapen, @mheap, @srichter and Kjell Knapen! 🎉

v0.19.2 🐘

12 Oct 13:15
5d95c29

Choose a tag to compare

This package version is compatible with MeiliSearch v0.23.0

Changes

  • Add method deleteIndexIfExists() (#226) @bofalke
  • Add method addDocumentsInBatches(array $documents, ?int $batchSize = 1000, ?string $primaryKey = null) (#229) @bofalke
  • Add method updateDocumentsInBatches(array $documents, ?int $batchSize = 1000, ?string $primaryKey = null) (#229) @bofalke
  • Add method to getAllRawIndexes() (#228) @kjellknapen
  • News methods New format handling CSV NDJSON (#235) @alallema
    • Add new index method addDocumentsJson(string $documents, ?string $primaryKey = null)
    • Add new index method addDocumentsNdJson(string $documents, ?string $primaryKey = null)
    • Add new index method addDocumentsCsv(string $documents, ?string $primaryKey = null)

Bugs

  • Fixing issue when send synonyms as empty array (#208) @alallema
  • Check response Content-Type header in HTTP client (#219) @srichter
  • Refactors TimeOutException (fixing unreachable code) and increase test coverage (#221) @srichter

Thanks again to @AbihaFatima, @alallema, @bofalke, @curquiza, @kjellknapen, @srichter, and Kjell Knapen! 🎉