Commit Graph

105 Commits

Author SHA1 Message Date
f3874d58b9 Update version for the next release (v0.34.0) in Cargo.toml files 2022-10-24 10:13:25 +00:00
4c481a8947 Upgrade all dependencies 2022-10-17 13:05:56 +02:00
53503f09ca Make milli's default features optional in other executable targets 2022-10-12 09:22:05 +02:00
753e76d451 Update version for the next release (v0.33.4) in Cargo.toml files 2022-09-13 13:55:50 +00:00
077dcd2002 Update version for the next release (v0.33.3) in Cargo.toml files 2022-09-07 15:48:53 +00:00
97a04887a3 Update version for next release (v0.33.2) in Cargo.toml 2022-09-01 11:47:23 +02:00
c3363706c5 Update version for next release (v0.33.1) in Cargo.toml 2022-08-31 11:37:27 +02:00
9ed7324995 Update version for next release (v0.33.0) 2022-08-23 11:47:48 +02:00
18886dc6b7 Merge #598
598: Matching query terms policy r=Kerollmops a=ManyTheFish

## Summary

Implement several optional words strategy.

## Content

Replace `optional_words` boolean with an enum containing several term matching strategies:
```rust
pub enum TermsMatchingStrategy {
    // remove last word first
    Last,
    // remove first word first
    First,
    // remove more frequent word first
    Frequency,
    // remove smallest word first
    Size,
    // only one of the word is mandatory
    Any,
    // all words are mandatory
    All,
}
```

All strategies implemented during the prototype are kept, but only `Last` and `All` will be published by Meilisearch in the `v0.29.0` release.

## Related

spec: https://github.com/meilisearch/specifications/pull/173
prototype discussion: https://github.com/meilisearch/meilisearch/discussions/2639#discussioncomment-3447699


Co-authored-by: ManyTheFish <many@meilisearch.com>
2022-08-22 15:51:37 +00:00
5391e3842c replace optional_words by term_matching_strategy 2022-08-22 17:47:19 +02:00
f9029727e0 Fix benchmarks 2022-08-22 14:55:53 +02:00
e7624abe63 share heed between all sub-crates 2022-08-19 11:23:41 +02:00
60a7221827 Merge #609
609: Retry downloading the benchmarks datasets r=Kerollmops a=irevoire

Downloading the benchmarks datasets is failing [more and more](https://github.com/meilisearch/milli/pull/607#pullrequestreview-1076023074) often; thus, instead of fixing the issue, I thought we could retry multiple times.


Co-authored-by: Irevoire <tamo@meilisearch.com>
2022-08-18 11:47:09 +00:00
84a784834e retry downloading the benchmarks datasets 2022-08-17 19:25:05 +02:00
4aae07d5f5 expose the size methods 2022-08-17 17:07:38 +02:00
5d59bfde8a Sort Cargo.toml dependencies 2022-08-17 11:46:56 +02:00
fb2b6c0c28 Use mimalloc for benchmarks on all platforms 2022-08-10 16:56:42 +02:00
8f73251012 Use mimalloc for benchmarks on macOS 2022-08-10 13:30:56 +02:00
d5e9b7305b Update version for next release (v0.32.0) 2022-07-21 13:20:02 +04:00
941af58239 Merge #561
561: Enriched documents batch reader r=curquiza a=Kerollmops

~This PR is based on #555 and must be rebased on main after it has been merged to ease the review.~
This PR contains the work in #555 and can be merged on main as soon as reviewed and approved.

- [x] Create an `EnrichedDocumentsBatchReader` that contains the external documents id.
- [x] Extract the primary key name and make it accessible in the `EnrichedDocumentsBatchReader`.
- [x] Use the external id from the `EnrichedDocumentsBatchReader` in the `Transform::read_documents`.
- [x] Remove the `update_primary_key` from the _transform.rs_ file.
- [x] Really generate the auto-generated documents ids.
- [x] Insert the (auto-generated) document ids in the document while processing it in `Transform::read_documents`.

Co-authored-by: Kerollmops <clement@meilisearch.com>
2022-07-21 07:08:50 +00:00
8270e2b768 Fix name of "release_date" facet in movies benchmarks 2022-07-18 10:34:12 +02:00
448114cc1c Fix the benchmarks with the new indexation API 2022-07-12 15:22:09 +02:00
a892a4a79c Introduce a function to extend from a JSON array of objects 2022-07-12 15:14:06 +02:00
ea852200bb Fix the format used for a geo deleting benchmark 2022-07-12 14:55:52 +02:00
399eec5c01 Fix the indexation tests 2022-07-12 14:55:51 +02:00
fcfc4caf8c Move the Object type in the lib.rs file and use it everywhere 2022-07-12 14:55:51 +02:00
a97d4d63b9 Fix the benchmarks 2022-07-12 14:55:50 +02:00
aae03356cb Use BufReader to read datasets in benchmarks 2022-07-06 18:20:15 +02:00
eeba196053 Merge #572
572: Add reindexing benchmarks r=Kerollmops a=irevoire

With #557 coming, we should add benchmarks that measure our impact on the reindexing process.

Co-authored-by: Tamo <tamo@meilisearch.com>
2022-07-05 14:43:01 +00:00
9bc7627e27 Fix deserialisation of NDJson documents in benchmarks 2022-07-05 15:51:06 +02:00
2700d8dc67 Add reindexing benchmarks 2022-07-05 14:46:46 +02:00
cc48992e79 Bump the milli version to 0.31.1 2022-06-22 17:05:51 +02:00
f5c3b951bc Bump the milli version to 0.31.0 2022-06-22 12:08:16 +02:00
31f749b5d8 Update version for next release (v0.30.0) 2022-06-20 12:09:57 +02:00
2652310f2a Change delete benchmark names 2022-06-16 10:32:58 +02:00
adbb0ff318 Add deletion benchmarks 2022-06-16 10:17:58 +02:00
676187ba43 bump milli version 2022-06-09 16:53:32 +02:00
56ee9cc21f Bump the version to 0.29.2 2022-06-08 16:00:06 +02:00
478dbfa45a Update version for next release (v0.29.1) 2022-06-07 18:59:33 +02:00
05ae6dbfa4 Merge #541
541: Update version for next release (v0.29.0) r=ManyTheFish a=curquiza

Need to update the version since #540 was merged and breaking

Co-authored-by: Clémentine Urquizar <clementine@meilisearch.com>
2022-06-02 16:53:28 +00:00
6ce1c6487a Update version for next release (v0.29.0) 2022-06-02 18:07:55 +02:00
727d663f28 Update benchmarks 2022-06-02 18:07:10 +02:00
4dd7b20c32 Update benchmarks 2022-06-02 17:33:25 +02:00
c19c17eddb Update version to v0.28.1 2022-06-01 18:31:02 +02:00
895f5d8a26 Bump milli version 2022-05-18 10:37:12 +02:00
f820c9804d add one nested benchmark 2022-05-02 19:35:57 +02:00
d138b3c704 Update version 2022-04-25 18:43:46 +02:00
152a10344c Get rid of the threshold when comparing benchmarks
It just hide things
2022-04-19 15:39:58 +02:00
ea4bb9402f Merge #483
483: Enhance matching words r=Kerollmops a=ManyTheFish

# Summary

Enhance milli word-matcher making it handle match computing and cropping.

# Implementation

## Computing best matches for cropping

Before we were considering that the first match of the attribute was the best one, this was accurate when only one word was searched but was missing the target when more than one word was searched.

Now we are searching for the best matches interval to crop around, the chosen interval is the one:
1) that have the highest count of unique matches
> for example, if we have a query `split the world`, then the interval `the split the split the` has 5 matches but only 2 unique matches (1 for `split` and 1 for `the`) where the interval `split of the world` has 3 matches and 3 unique matches. So the interval `split of the world` is considered better.
2) that have the minimum distance between matches
> for example, if we have a query `split the world`, then the interval `split of the world` has a distance of 3 (2 between `split` and `the`, and 1 between `the` and `world`) where the interval `split the world` has a distance of 2. So the interval `split the world` is considered better.
3) that have the highest count of ordered matches
> for example, if we have a query `split the world`, then the interval `the world split` has 2 ordered words where the interval `split the world` has 3. So the interval `split the world` is considered better.

## Cropping around the best matches interval

Before we were cropping around the interval without checking the context.

Now we are cropping around words in the same context as matching words.
This means that we will keep words that are farther from the matching words but are in the same phrase, than words that are nearer but separated by a dot.

> For instance, for the matching word `Split` the text:
`Natalie risk her future. Split The World is a book written by Emily Henry. I never read it.`
will be cropped like:
`…. Split The World is a book written by Emily Henry. …`
and  not like:
`Natalie risk her future. Split The World is a book …`


Co-authored-by: ManyTheFish <many@meilisearch.com>
2022-04-19 11:42:32 +00:00
5809d3ae0d Add first benchmarks on formatting 2022-04-12 16:31:58 +02:00