From c2849b397d365d03b006a1072dba4d99e34ce93b Mon Sep 17 00:00:00 2001 From: Charlotte Vermandel Date: Sun, 17 Jan 2021 17:45:48 +0100 Subject: [PATCH 1/8] Update upgrading guide in installation --- guides/advanced_guides/installation.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/guides/advanced_guides/installation.md b/guides/advanced_guides/installation.md index 535cfe07ef..b35d19d1b4 100644 --- a/guides/advanced_guides/installation.md +++ b/guides/advanced_guides/installation.md @@ -107,3 +107,9 @@ Here is the list of [all the options and how to use them](/guides/advanced_guide Updating MeiliSearch is a straightforward process, simply get and install the latest binary with your preferred method (see installation above). Note that all MeiliSearch versions are not compatible with each other, and you may need to re-index your documents. If you get the error `Cannot open database, expected MeiliSearch engine version: X.X.X, current engine version Y.Y.Y`, delete your database folder (defaults to `data.ms`), and re-index all your documents. + +### Restoring your content between two versions + +You can use [dumps](/guides/advanced_guides/snapshots_and_dumps.md#dumps) to export your data to a state where it can be imported after updating MeiliSearch. Since the content is exported in a way that guarantees its importability, it needs to be re-indexed. This process can take long if your database is big. Nonetheless, it **guarantees restoring all setting and documents between two updates**. + +If you want a complete guide on how to do the transition, please [look at this github issue](https://github.com/meilisearch/MeiliSearch/discussions/1187#discussioncomment-278125). From d3b59c0ccbea5e8d7e8536b985d78c7726b37ce1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 18 Jan 2021 12:29:06 -0500 Subject: [PATCH 2/8] Bump eslint from 7.17.0 to 7.18.0 (#704) Bumps [eslint](https://github.com/eslint/eslint) from 7.17.0 to 7.18.0. - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v7.17.0...v7.18.0) Signed-off-by: dependabot-preview[bot] Co-authored-by: dependabot-preview[bot] <27856297+dependabot-preview[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index f2a33225ff..7eb70c1a2a 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,7 @@ "devDependencies": { "babel-eslint": "^10.1.0", "bent": "^7.3.12", - "eslint": "^7.17.0", + "eslint": "^7.18.0", "eslint-config-prettier": "^7.1.0", "eslint-config-standard": "^16.0.2", "eslint-plugin-import": "^2.22.1", diff --git a/yarn.lock b/yarn.lock index 328abc7415..92903d5d93 100644 --- a/yarn.lock +++ b/yarn.lock @@ -866,10 +866,10 @@ resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-3.1.0.tgz#8ff71d51053cd5ee4981e5a501d80a536244f7fd" integrity sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg== -"@eslint/eslintrc@^0.2.2": - version "0.2.2" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.2.2.tgz#d01fc791e2fc33e88a29d6f3dc7e93d0cd784b76" - integrity sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ== +"@eslint/eslintrc@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.3.0.tgz#d736d6963d7003b6514e6324bec9c602ac340318" + integrity sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -878,7 +878,7 @@ ignore "^4.0.6" import-fresh "^3.2.1" js-yaml "^3.13.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" strip-json-comments "^3.1.1" @@ -3944,13 +3944,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.17.0: - version "7.17.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.17.0.tgz#4ccda5bf12572ad3bf760e6f195886f50569adb0" - integrity sha512-zJk08MiBgwuGoxes5sSQhOtibZ75pz0J35XTRlZOk9xMffhpA9BTbQZxoXZzOl5zMbleShbGwtw+1kGferfFwQ== +eslint@^7.18.0: + version "7.18.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.18.0.tgz#7fdcd2f3715a41fe6295a16234bd69aed2c75e67" + integrity sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ== dependencies: "@babel/code-frame" "^7.0.0" - "@eslint/eslintrc" "^0.2.2" + "@eslint/eslintrc" "^0.3.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -3974,7 +3974,7 @@ eslint@^7.17.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.19" + lodash "^4.17.20" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" From 83e42d786b5bdced0503bc3998e3396134d68d2f Mon Sep 17 00:00:00 2001 From: cvermand <33010418+bidoubiwa@users.noreply.github.com> Date: Mon, 18 Jan 2021 18:43:06 +0100 Subject: [PATCH 3/8] Remove axios vulnerability (#703) Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> --- yarn.lock | 74 +++++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/yarn.lock b/yarn.lock index 92903d5d93..52f78fcd4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1745,10 +1745,10 @@ autocomplete.js@0.36.0: dependencies: immediate "^3.2.3" -autocomplete.js@0.37.1: - version "0.37.1" - resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.37.1.tgz#a29a048d827e7d2bf8f7df8b831766e5cc97df01" - integrity sha512-PgSe9fHYhZEsm/9jggbjtVsGXJkPLvd+9mC7gZJ662vVL5CRWEtm/mIrrzCx0MrNxHVwxD5d00UOn6NsmL2LUQ== +autocomplete.js@0.38.0: + version "0.38.0" + resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.38.0.tgz#9d49c2f4788fa23960275a6422ca78b310c01ef8" + integrity sha512-xZlqbg0LN9D1cZd4TkPJmir/Bq0+xXnp35X6i87yU2dD2wYv9E7pVU1+QKu0PbBVV2dShppwlKGMsfCYQD9OtA== dependencies: immediate "^3.2.3" @@ -1775,13 +1775,6 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz#e1e82e4f3e999e2cfd61b161280d16a111f86428" integrity sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA== -axios@^0.19.2: - version "0.19.2" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" - integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== - dependencies: - follow-redirects "1.5.10" - babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -2750,6 +2743,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-fetch@^3.0.5: + version "3.0.6" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c" + integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ== + dependencies: + node-fetch "2.6.1" + cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" @@ -3285,13 +3285,6 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@=3.1.0, debug@~3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" - integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== - dependencies: - ms "2.0.0" - debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -3306,6 +3299,13 @@ debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" +debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -3492,15 +3492,15 @@ dns-txt@^2.0.2: buffer-indexof "^1.0.0" docs-searchbar.js@^1.1: - version "1.1.7" - resolved "https://registry.yarnpkg.com/docs-searchbar.js/-/docs-searchbar.js-1.1.7.tgz#bc2066d2d03242b05d1584e2220946539d7f2d86" - integrity sha512-DqNhqEmpWdmFGLl6SUffBsnuf05VpZHhM6LVyT4P6WkTEWg5K8lHfta2RDfbduvOm0xxGQxCfEVpd1m9JN32gw== + version "1.1.10" + resolved "https://registry.yarnpkg.com/docs-searchbar.js/-/docs-searchbar.js-1.1.10.tgz#29326f6fc2437440ce466072d38eda4cc4b07947" + integrity sha512-FZWdc11b+9spwL4vN70Wz3oUPnUJLPorS7v6dTcEamdV6IRn2EHHJ/UNrD/cfr5AO6hDrR87zMH6zPKNbmzwSg== dependencies: - autocomplete.js "0.37.1" + autocomplete.js "0.38.0" concurrently "^5.1.0" eslint-plugin-eslint-comments "^3.2.0" hogan.js "^3.0.2" - meilisearch "^0.12.0" + meilisearch "^0.17.0" request "^2.87.0" stack-utils "^2.0.2" to-factory "^1.0.0" @@ -4359,13 +4359,6 @@ flush-write-stream@^1.0.0: inherits "^2.0.3" readable-stream "^2.3.6" -follow-redirects@1.5.10: - version "1.5.10" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" - integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== - dependencies: - debug "=3.1.0" - follow-redirects@^1.0.0: version "1.13.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz#b42e8d93a2a7eea5ed88633676d6597bc8e384db" @@ -6082,12 +6075,12 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -meilisearch@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/meilisearch/-/meilisearch-0.12.0.tgz#051b728e2df07bdaf4321a98f6aa8dd7a89803e8" - integrity sha512-5bvw+zg8yh4ZXtXgz1VDAd0A/Ng1ZCagIiQyZKfyp7nyqOYafxIAU+wNigPcUdplyAunTXj2F6z/2GXeHge5VA== +meilisearch@^0.17.0: + version "0.17.0" + resolved "https://registry.yarnpkg.com/meilisearch/-/meilisearch-0.17.0.tgz#695914c929a57166a99e14549c22ab1216a62ed1" + integrity sha512-fKBNS1VtX8xl9WCK+3Uo60uLsJO6esoPXXOt6nq9lavWURmgRn7HC4em9S8N6P1kYCyb/BFMUOYZBm3rgq1zAw== dependencies: - axios "^0.19.2" + cross-fetch "^3.0.5" memory-fs@^0.4.1: version "0.4.1" @@ -6414,6 +6407,11 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" +node-fetch@2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" + integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw== + node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" @@ -8503,9 +8501,9 @@ stack-utils@^1.0.1: integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" From 223b0eeac7701b434c65de92bad8ab2c732b7752 Mon Sep 17 00:00:00 2001 From: cvermand <33010418+bidoubiwa@users.noreply.github.com> Date: Mon, 18 Jan 2021 19:26:29 +0100 Subject: [PATCH 4/8] Lazy index getting started suggestion (#571) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Prepare documentation for release 11/2020 of MeiliSearch * Change documents references * Add lazy index to indexes main concept * Suggestion for lazy index into getting started * Fix type * Apply suggestions from code review Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> * Update guides/introduction/quick_start_guide.md Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> * Update .vuepress/config.js Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> * Update references/documents.md Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> * Remove create index code sample * Update guides/introduction/quick_start_guide.md Co-authored-by: Clémentine Urquizar * Update guides/main_concepts/indexes.md Co-authored-by: Clémentine Urquizar * Update guides/main_concepts/indexes.md Co-authored-by: Clémentine Urquizar * Update documents addition in getting started. Updated primary key definition * Update .vuepress/components/glossary.vue Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> * Update guides/introduction/quick_start_guide.md Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> * Fix styling Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> Co-authored-by: Clémentine Urquizar --- .code-samples.meilisearch.yaml | 8 ------- .vuepress/components/glossary.vue | 2 +- guides/introduction/README.md | 1 - guides/introduction/quick_start_guide.md | 29 +++++++++++++----------- guides/main_concepts/indexes.md | 4 ++-- references/documents.md | 4 ++-- 6 files changed, 21 insertions(+), 27 deletions(-) diff --git a/.code-samples.meilisearch.yaml b/.code-samples.meilisearch.yaml index 85c6b097ff..dc0e6b0f65 100644 --- a/.code-samples.meilisearch.yaml +++ b/.code-samples.meilisearch.yaml @@ -365,14 +365,6 @@ search_guide_1: |- search_guide_2: |- $ curl 'http://localhost:7700/indexes/movies/search' \ --data '{ "q": "Avengers", "filters": "release_date > 795484800" }' -getting_started_create_index_md: |- - ```bash - $ curl \ - -X POST 'http://127.0.0.1:7700/indexes' \ - --data '{ - "uid" : "movies" - }' - ``` getting_started_add_documents_md: |- ```bash $ curl \ diff --git a/.vuepress/components/glossary.vue b/.vuepress/components/glossary.vue index 75289a0727..7716d47f1d 100644 --- a/.vuepress/components/glossary.vue +++ b/.vuepress/components/glossary.vue @@ -26,7 +26,7 @@ const glossary = { 'primary field': 'A special field containing the primary key and a unique document id.

Every document must possess a correctly formatted primary field in order to be indexed.', 'primary key': - 'The attribute of the primary field. The primary key\'s associated value is a unique document id. An index possesses only one primary key, which is shared among all its documents.

Example: in a document with the primary field "movie_id": "Abc_012", "movie_id" is the primary key.', + 'An attribute that must be present in every document of a given index, used to identify and distinguish documents.

Example: In a document with the primary field "id": "Abc_012", "id" is the index\'s primary key and "Abc_012" is the document\'s unique identifier.', 'document id': 'The value of the primary field. The document id acts as a unique identifier for storing documents.

Example: in a document with the primary field "movie_id": "Abc_012", "Abc_012" is the document id.', schemaless: diff --git a/guides/introduction/README.md b/guides/introduction/README.md index 983c398311..9c8a95d56f 100644 --- a/guides/introduction/README.md +++ b/guides/introduction/README.md @@ -6,7 +6,6 @@ Contents : - 🚀 Getting Started - [Download and launch MeiliSearch](/guides/introduction/quick_start_guide.md#download-and-launch) - - [Create your index](/guides/introduction/quick_start_guide.md#create-your-index) - [Add documents](/guides/introduction/quick_start_guide.md#add-documents) - [Search!](/guides/introduction/quick_start_guide.md#search) - 👩‍🚀 [What's next?](/guides/introduction/whats_next.md) diff --git a/guides/introduction/quick_start_guide.md b/guides/introduction/quick_start_guide.md index 65bb9c7aea..f9a522f4a2 100644 --- a/guides/introduction/quick_start_guide.md +++ b/guides/introduction/quick_start_guide.md @@ -22,28 +22,29 @@ Now that your MeiliSearch server is up and running, you should be able to commun Communication to the server is done through a [RESTful API](/references/README.md) or one of our [SDKs](/resources/sdks.md). -## Create your Index - -In MeiliSearch, the information is subdivided into indexes. Each [index](/guides/main_concepts/indexes.md) contains a data structure and associated documents. -Indexes can be comparable to SQL tables. Since MeiliSearch is , there's no need to define any attributes or data type when creating a table. +## Add Documents -In order to be able to store your documents in an index, it is required you create one first. +To add documents to MeiliSearch you must provide: - +- [Documents](/guides/main_concepts/documents.md) in the form of `JSON objects`. +- An [index](/guides/main_concepts/indexes.md) name (_uid_). An index is where the documents are stored. -[API references](/references/indexes.md) +> _If the index does not exist, MeiliSearch creates it when you first add documents._ -## Add Documents +To be processed, all documents must share one common which will serve as [](/guides/main_concepts/documents.md#primary-key) for the document. Values in that field must always be **unique**. -Once the index has been created, the next step is to fill it with [documents](/guides/main_concepts/documents.md). These documents will be used and returned when search queries will be performed on MeiliSearch. - -Documents are represented in `JSON format`. +```json +{ + "id": "123", + "title": "Superman" +} +``` -To be processed, all documents must share one common which will serve as [primary key](/guides/main_concepts/documents.md#primary-key) for the document. Values in that field must always be **unique**. +> The primary key is `id`, the document's unique identifier is `123`. There are [several ways to let MeiliSearch know what the primary key](/guides/main_concepts/documents.md#primary-key) is. The easiest one is to have an that contains the string `id` in a case-insensitive manner. -Below is an example to showcase how to add documents using the following test dataset: [movies.json](https://github.com/meilisearch/MeiliSearch/blob/master/datasets/movies/movies.json). +Below is an example to showcase how to add documents to an index called `movies` using the following test dataset: [movies.json](https://github.com/meilisearch/MeiliSearch/blob/master/datasets/movies/movies.json). @@ -61,6 +62,8 @@ You can check the status of the operation via the `updateId` and the [get update Checking the update status is not a mandatory step to search through your documents but could prove useful in tracing the origin of errors or unexpected behaviors. +[API references](/references/updates.md) + ## Search Now that your documents have been ingested into MeiliSearch, you are able to [search them](/guides/main_concepts/search.md). diff --git a/guides/main_concepts/indexes.md b/guides/main_concepts/indexes.md index 7ec12a2ad3..3b31013cb4 100644 --- a/guides/main_concepts/indexes.md +++ b/guides/main_concepts/indexes.md @@ -23,8 +23,8 @@ An index is created the first time documents are added to it or manually using t #### Example -Working on a fresh MeiliSearch instance with no indexes, let's add documents using the [add or replace documents endpoint](/references/documents.md#add-or-replace-documents). -We provide `movie` as our index name. Because there's currently no index of that name in our MeiliSearch instance, using the following code will: +In a new MeiliSearch instance without any index, let's add documents using the [add or replace documents endpoint](/references/documents.md#add-or-replace-documents). +We provide `movies` as our index. Because that index was not previously created, using the following code will: 1. Create the `movie` index. 2. Add the documents to it. diff --git a/references/documents.md b/references/documents.md index 9d99d30cd0..d8529d7af2 100644 --- a/references/documents.md +++ b/references/documents.md @@ -90,7 +90,7 @@ Documents are ordered by MeiliSearch depending on the hash of their id. -Add a list of [documents](/guides/main_concepts/documents.md) or replace them if they already exist. +Add a list of [documents](/guides/main_concepts/documents.md) or replace them if they already exist. If the provided index does not exist, it will be created. If you send an already existing document (same [id](/guides/main_concepts/documents.md#primary-key)) the **whole existing document** will be overwritten by the new document. Fields previously in the document not present in the new document are removed. @@ -146,7 +146,7 @@ This `updateId` allows you to [track the current update](/references/updates.md) -Add a list of documents and update them if they already. +Add a list of documents or update them if they already exist. If the provided index does not exist, it will be created. If you send an already existing document (same [id](/guides/main_concepts/documents.md#primary-key)) the old document will be only partially updated according to the fields of the new document. Thus, any fields not present in the new document are kept and remained unchanged. From e9c314868b2e0b7325571de0bdc2272eb06aed20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9mentine=20Urquizar?= Date: Tue, 19 Jan 2021 19:30:23 +0100 Subject: [PATCH 5/8] Update LICENSE (#709) --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 8f028e3f20..03ad189ef9 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2019-2020 Meili SAS +Copyright (c) 2019-2021 Meili SAS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal From 5b45b7eef1bfddfaefa47a13778c0bedb41e222a Mon Sep 17 00:00:00 2001 From: cvermand <33010418+bidoubiwa@users.noreply.github.com> Date: Tue, 19 Jan 2021 21:06:01 +0100 Subject: [PATCH 6/8] Update guides/advanced_guides/installation.md Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> --- guides/advanced_guides/installation.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/guides/advanced_guides/installation.md b/guides/advanced_guides/installation.md index b35d19d1b4..f460726c88 100644 --- a/guides/advanced_guides/installation.md +++ b/guides/advanced_guides/installation.md @@ -104,12 +104,18 @@ Here is the list of [all the options and how to use them](/guides/advanced_guide ## Updating MeiliSearch -Updating MeiliSearch is a straightforward process, simply get and install the latest binary with your preferred method (see installation above). +Updating MeiliSearch is a straightforward process: simply get and install the latest binary with your preferred method (see [installation](/guides/advanced_guides/installation.md#download-and-launch) above). -Note that all MeiliSearch versions are not compatible with each other, and you may need to re-index your documents. If you get the error `Cannot open database, expected MeiliSearch engine version: X.X.X, current engine version Y.Y.Y`, delete your database folder (defaults to `data.ms`), and re-index all your documents. +Note that prior to our official release (`v1.0`), all minor updates (`v0.X`) are considered breaking. Therefore, **MeiliSearch databases are not compatible across versions** for as long as we are in beta. -### Restoring your content between two versions +If you want to transfer your database from an outdated MeiliSearch instance to the most recent version, we recommend following [the below guide](/guides/advanced_guides/installation.md#migrating-a-database-to-a-later-version). -You can use [dumps](/guides/advanced_guides/snapshots_and_dumps.md#dumps) to export your data to a state where it can be imported after updating MeiliSearch. Since the content is exported in a way that guarantees its importability, it needs to be re-indexed. This process can take long if your database is big. Nonetheless, it **guarantees restoring all setting and documents between two updates**. +If you get the error `Cannot open database, expected MeiliSearch engine version: X.X.X, current engine version Y.Y.Y`, simply delete your database folder (defaults to `data.ms`), and re-index all your documents. -If you want a complete guide on how to do the transition, please [look at this github issue](https://github.com/meilisearch/MeiliSearch/discussions/1187#discussioncomment-278125). +### Migrating a Database to a Later Version + +Using [dumps](/guides/advanced_guides/snapshots_and_dumps.md#dumps), you can export your MeiliSearch data—all indexes, documents, and settings contained in your database—into a transferrable state. Then, you can re-import this data after updating MeiliSearch to the latest version. + +Since the content is exported in a way that guarantees mobility, it needs to be re-indexed. If your database is large, this process can take a long time. Nonetheless, this process guarantees **to migrate all settings and documents between two different versions of MeiliSearch**. + +If you want a complete guide on how to update MeiliSearch on DigitalOcean, please [look at this GitHub issue](https://github.com/meilisearch/MeiliSearch/discussions/1187#discussioncomment-278125). From c7c7775770208b2617315731727bd0b405c29c83 Mon Sep 17 00:00:00 2001 From: cvermand <33010418+bidoubiwa@users.noreply.github.com> Date: Thu, 21 Jan 2021 12:52:27 +0100 Subject: [PATCH 7/8] Apply suggestions from code review Co-authored-by: Tommy <68053732+react-learner@users.noreply.github.com> --- guides/advanced_guides/installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/guides/advanced_guides/installation.md b/guides/advanced_guides/installation.md index f460726c88..e1b6136b67 100644 --- a/guides/advanced_guides/installation.md +++ b/guides/advanced_guides/installation.md @@ -104,9 +104,9 @@ Here is the list of [all the options and how to use them](/guides/advanced_guide ## Updating MeiliSearch -Updating MeiliSearch is a straightforward process: simply get and install the latest binary with your preferred method (see [installation](/guides/advanced_guides/installation.md#download-and-launch) above). +Getting the latest version of MeiliSearch is a straightforward process: simply fetch and install the latest binary with your preferred method (see [installation](/guides/advanced_guides/installation.md#download-and-launch) above). -Note that prior to our official release (`v1.0`), all minor updates (`v0.X`) are considered breaking. Therefore, **MeiliSearch databases are not compatible across versions** for as long as we are in beta. +However, please note that prior to our official release (`v1.0`), all minor updates (`v0.X`) are considered breaking. Therefore, **MeiliSearch databases are not compatible across versions** for as long as we are in beta. If you want to transfer your database from an outdated MeiliSearch instance to the most recent version, we recommend following [the below guide](/guides/advanced_guides/installation.md#migrating-a-database-to-a-later-version). From 5b5d66bc30b10130123fe727451b208dee0001be Mon Sep 17 00:00:00 2001 From: Charlotte Vermandel Date: Sun, 17 Jan 2021 17:45:48 +0100 Subject: [PATCH 8/8] Update upgrading guide in installation --- guides/advanced_guides/installation.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/guides/advanced_guides/installation.md b/guides/advanced_guides/installation.md index 535cfe07ef..b35d19d1b4 100644 --- a/guides/advanced_guides/installation.md +++ b/guides/advanced_guides/installation.md @@ -107,3 +107,9 @@ Here is the list of [all the options and how to use them](/guides/advanced_guide Updating MeiliSearch is a straightforward process, simply get and install the latest binary with your preferred method (see installation above). Note that all MeiliSearch versions are not compatible with each other, and you may need to re-index your documents. If you get the error `Cannot open database, expected MeiliSearch engine version: X.X.X, current engine version Y.Y.Y`, delete your database folder (defaults to `data.ms`), and re-index all your documents. + +### Restoring your content between two versions + +You can use [dumps](/guides/advanced_guides/snapshots_and_dumps.md#dumps) to export your data to a state where it can be imported after updating MeiliSearch. Since the content is exported in a way that guarantees its importability, it needs to be re-indexed. This process can take long if your database is big. Nonetheless, it **guarantees restoring all setting and documents between two updates**. + +If you want a complete guide on how to do the transition, please [look at this github issue](https://github.com/meilisearch/MeiliSearch/discussions/1187#discussioncomment-278125).