829: implement snapshoting r=MarinPostma a=LegendreM
related to #551.
This pull request permit user to create periodically a snapshot of MeiliSearch database via a command line and launch meiliSearch from a snapshot with another command
## Documentation
### schedule a snapshot
`--snapshot-path <DIRECTORY_PATH>`:
this will periodically create a snapshot `<DB_NAME>.tar.gz` in the specified directory
### change period between 2 snapshot creation
`--snapshot-interval-sec <GAP_IN_SEC>`
choose the time gap between 2 snapshot
### start meilisearch from a snapshot
`--load-from-snapshot <FILE_PATH>`
this will use the snapshot stored at `<FILE_PATH>` to initialize MeiliSearch database,
`--ignore-snapshot-if-db-exists` if set and if a db already exists,
this will skip snapshot importation and continue process with actual db instead of quitting process by returning an Error
`--ignore-missing-snapshot` if set and if no snapshot exists at provided path,
this will skip snapshot importation and continue process with actual db instead of quitting process by returning an Error
Co-authored-by: many <maxime@meilisearch.com>
889: Fix clippy warnings r=MarinPostma a=TaKO8Ki
Good day!
Since `cargo clippy` showed two warnings like the following, I've fixed them. This is a small PR.
```sh
warning: use of `ok_or` followed by a function call
--> meilisearch-core/src/database.rs:185:18
|
185 | .ok_or(Error::VersionMismatch("bad VERSION file".to_string()))?;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `ok_or_else(|| Error::VersionMismatch("bad VERSION file".to_string()))`
|
= note: `#[warn(clippy::or_fun_call)]` on by default
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call
warning: useless use of `format!`
--> meilisearch-core/src/database.rs:208:59
|
208 | return Err(Error::VersionMismatch(format!("<0.12.0")));
| ^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"<0.12.0".to_string()`
|
= note: `#[warn(clippy::useless_format)]` on by default
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
warning: 2 warnings emitted
```
Co-authored-by: Takayuki Maeda <41065217+TaKO8Ki@users.noreply.github.com>
888: Remove schema mention in error message r=MarinPostma a=curquiza
We avoid mentioning the schema since MeiliSearch is schemaless for the user 🙂
Co-authored-by: Clementine Urquizar <clementine@meilisearch.com>
638: Update requitites for source build(rust version) r=MarinPostma a=djKooks
Hello,
I just found that compile via source has been failed by issue here:
```
error[E0658]: the `#[non_exhaustive]` attribute is an experimental feature
--> /Users/kwangin.jung/.cargo/registry/src/github.com-1ecc6299db9ec823/whoami-0.8.1/src/lib.rs:40:1
|
40 | #[non_exhaustive]
| ^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44109
error[E0658]: the `#[non_exhaustive]` attribute is an experimental feature
--> /Users/kwangin.jung/.cargo/registry/src/github.com-1ecc6299db9ec823/whoami-0.8.1/src/lib.rs:102:1
|
102 | #[non_exhaustive]
| ^^^^^^^^^^^^^^^^^
|
= note: for more information, see https://github.com/rust-lang/rust/issues/44109
```
Seems `#[non_exhaustive]` is a new feature on Rust 1.40.0, so added as pre-requitites.
828: Cleanup readme r=MarinPostma a=tpayet
Closes#613
865: Update movie dataset with genre field r=MarinPostma a=bidoubiwa
Updated the movie dataset by adding the `genre` field to each movies where the genre could be fetched.
The `genre` was fetch for each movie by making a search request on the bigger movie dataset (200mb) using MeilISearch.
I make this proposition to make testing and trying more accessible.
```json
{
"id": "323661",
"title": "Mune: Guardian of the Moon",
"poster": "https://image.tmdb.org/t/p/w1280/4vzqow7mVUahqA4hHoe2UpQOxy.jpg",
"overview": "When a faun named Mune becomes the Guardian of the Moon, little did he had unprepared experience with the Moon and an accident that could put both the Moon and the Sun in danger, including a corrupt titan named Necross who wants the Sun for himself and placing the balance of night and day in great peril. Now with the help of a wax-child named Glim and the warrior, Sohone who also became the Sun Guardian, they go out on an exciting journey to get the Sun back and restore the Moon to their rightful place in the sky.",
"release_date": 1423094400,
"genre": [
"Animation",
"Family",
"Adventure",
"Fantasy",
"Comedy"
]
}
{
"id": "306",
"title": "Beverly Hills Cop III",
"poster": "https://image.tmdb.org/t/p/w1280/tw9gAhqQcBFX0X0XfVbWqUsmzoU.jpg",
"overview": "Back in sunny southern California and on the trail of two murderers, Axel Foley again teams up with LA cop Billy Rosewood. Soon, they discover that an amusement park is being used as a front for a massive counterfeiting ring – and it's run by the same gang that shot Billy's boss.",
"release_date": 769741200,
"genre": [
"Action",
"Comedy",
"Crime"
]
}
```
Co-authored-by: kwangin.jung <inylove82@gmail.com>
Co-authored-by: Thomas Payet <thomas@meilisearch.com>
Co-authored-by: Charlotte Vermandel <charlottevermandel@gmail.com>
873: Update CI for new workflow r=MarinPostma a=MarinPostma
This pr implements the necessary automation for our new release workflow.
## Pre-releases
whenever something is pushed to a branch `release-v*`, tests are triggered. If all test pass, the current reference is checked to see if it's a release branch. If it's a release branch, a pre-release is created for this branch and assets are automatically generated for this branch. The prerelease has the tag `vx.x.xrcn` where `x.x.x` is the version extracteds from the branch name, and n is the number of commits since the branch was forked from master. (starting from rc0).
## Releases
Whenever something is pushed to stable and tagged `vx.x.x` where `x.x.x` is the version, tests are run and a release is generated containing the assets, and binaries are published to docker, brew, apt, etc.
Co-authored-by: mpostma <postma.marin@protonmail.com>
846: Change settings behavior r=LegendreM a=MarinPostma
partially implements #824.
Returning the field distribution for all know fields is more complicated that anticipated, see https://github.com/meilisearch/MeiliSearch/issues/824#issuecomment-657656561
If we decide to to it anyway, and find a reasonable solution, I will make another PR.
fix#853 by resetting displayed and searchable attributes to wildcard when attributes are set to `[]` in the all settings route. @curquiza @bidoubiwa can you confirm me that this is the expected behavior?
Co-authored-by: mpostma <postma.marin@protonmail.com>