Louis Dureuil
7c084b1286
SearchQueriesWithIndex changes
2024-09-17 10:39:47 +02:00
Louis Dureuil
57f9517a98
Required changes to IndexUid
2024-09-17 10:39:47 +02:00
Louis Dureuil
72cc573e0a
Add new error types
2024-09-17 10:39:47 +02:00
Louis Dureuil
a48b1d5a79
Update existing tests following error message changes
2024-09-17 10:39:47 +02:00
Louis Dureuil
a94a87ee54
Slightly changes existing error messages
2024-09-17 10:39:47 +02:00
meili-bors[bot]
4b55ba68bc
Merge #4911
...
4911: Bump quinn-proto from 0.11.3 to 0.11.8 r=Kerollmops a=dependabot[bot]
Bumps [quinn-proto](https://github.com/quinn-rs/quinn ) from 0.11.3 to 0.11.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/quinn-rs/quinn/releases ">quinn-proto's releases</a>.</em></p>
<blockquote>
<h2>quinn-proto 0.11.5</h2>
<h2>What's Changed</h2>
<ul>
<li>No workspace lints by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1955 ">quinn-rs/quinn#1955</a></li>
</ul>
<h2>quinn-proto 0.11.4</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix panic in example due to unset default crypto provider by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1882 ">quinn-rs/quinn#1882</a></li>
<li>Fix zero-length connection IDs by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1883 ">quinn-rs/quinn#1883</a></li>
<li>Add support for NetBSD, fix OpenBSD by <a href="https://github.com/flub "><code>`@flub</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1884 ">quinn-rs/quinn#1884</a></li>
<li>docs(udp): replace AsRawFd and AsRawSocket with AsFd and AsSocket by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1890 ">quinn-rs/quinn#1890</a></li>
<li>Resolve stopped/received_reset futures on lost connections by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1886 ">quinn-rs/quinn#1886</a></li>
<li>Bump version numbers (quinn 0.11.2, -proto 0.11.3) by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1891 ">quinn-rs/quinn#1891</a></li>
<li>udp: bump version to 0.5.2 by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1892 ">quinn-rs/quinn#1892</a></li>
<li>docs(quinn): Clarify effects of setting AckFrequencyConfig by <a href="https://github.com/gretchenfrage "><code>`@gretchenfrage</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1894 ">quinn-rs/quinn#1894</a></li>
<li>Apply clippy suggestions from Rust 1.79 by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1895 ">quinn-rs/quinn#1895</a></li>
<li>Only send MAX_STREAMS when >1/8 of flow control window is consumed by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1898 ">quinn-rs/quinn#1898</a></li>
<li>fix: remove unused dependency tracing-attributes by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1903 ">quinn-rs/quinn#1903</a></li>
<li>proto: make initial destination cid configurable by <a href="https://github.com/thynson "><code>`@thynson</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1897 ">quinn-rs/quinn#1897</a></li>
<li>Allow configuring rng seed through <code>EndpointConfig</code> by <a href="https://github.com/aochagavia "><code>`@aochagavia</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1901 ">quinn-rs/quinn#1901</a></li>
<li>quinn: introduce waking helpers by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1908 ">quinn-rs/quinn#1908</a></li>
<li>Wake blocked streams on 0-RTT rejection by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1905 ">quinn-rs/quinn#1905</a></li>
<li>Upgrade to rustc-hash 2 by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1909 ">quinn-rs/quinn#1909</a></li>
<li>Fix unnecessary Incoming warning on Endpoint drop by <a href="https://github.com/gretchenfrage "><code>`@gretchenfrage</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1907 ">quinn-rs/quinn#1907</a></li>
<li>Revise and add additional 0-rtt doc comments by <a href="https://github.com/gretchenfrage "><code>`@gretchenfrage</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1826 ">quinn-rs/quinn#1826</a></li>
<li>docs: remove reference to sendmmsg by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1914 ">quinn-rs/quinn#1914</a></li>
<li>Fix debug assert with reordered ACKs by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1893 ">quinn-rs/quinn#1893</a></li>
<li>quinn: Make <code>Endpoint::client</code> dual-stack V6 by default by <a href="https://github.com/gretchenfrage "><code>`@gretchenfrage</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1913 ">quinn-rs/quinn#1913</a></li>
<li>bench(udp): measure non-GSO & GSO on localhost by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1915 ">quinn-rs/quinn#1915</a></li>
<li>proto: avoid overflow in handshake done statistic by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1918 ">quinn-rs/quinn#1918</a></li>
<li>Use workspace dependencies for all external dependencies by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1919 ">quinn-rs/quinn#1919</a></li>
<li>Fix lack of reexport of ConnectionStats and ResetError by <a href="https://github.com/TirushOne "><code>`@TirushOne</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1920 ">quinn-rs/quinn#1920</a></li>
<li>[non-breaking] deps(udp): make tracing optional and add optional log by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1923 ">quinn-rs/quinn#1923</a></li>
<li>fix(udp): feature flag tracing in windows.rs by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1932 ">quinn-rs/quinn#1932</a></li>
<li>Bump MSRV to 1.70 following tokio 1.39 by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1939 ">quinn-rs/quinn#1939</a></li>
<li>Raise default idle timeout to 30 seconds by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1938 ">quinn-rs/quinn#1938</a></li>
<li>Discard pre-handshake packets after the handshake by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1937 ">quinn-rs/quinn#1937</a></li>
<li>Apply suggestions from Clippy 1.80 by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1941 ">quinn-rs/quinn#1941</a></li>
<li>chore(quinn): feature flag socket2 imports by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1933 ">quinn-rs/quinn#1933</a></li>
<li>refactor: move rust-version to workspace Cargo.toml by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1940 ">quinn-rs/quinn#1940</a></li>
<li>chore: move common package data to workspace Cargo.toml by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1943 ">quinn-rs/quinn#1943</a></li>
<li>Endpoint stats interface by <a href="https://github.com/ryleung-solana "><code>`@ryleung-solana</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1900 ">quinn-rs/quinn#1900</a></li>
<li>Expose the Handshake Confirmed state by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1944 ">quinn-rs/quinn#1944</a></li>
<li>Exclude metrics with freestanding getters from EndpointStats by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1945 ">quinn-rs/quinn#1945</a></li>
<li>Fix incorrect initial DCID indexing on retried connections by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1946 ">quinn-rs/quinn#1946</a></li>
<li>Add expect message to unwrap in PacketBuilder by <a href="https://github.com/casey "><code>`@casey</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1951 ">quinn-rs/quinn#1951</a></li>
<li>Revert "proto: yield transport error for Initial packets with no CRYPTO" by <a href="https://github.com/Ralith "><code>`@Ralith</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1952 ">quinn-rs/quinn#1952</a></li>
<li>refactor(udp): introduce log facade by <a href="https://github.com/mxinden "><code>`@mxinden</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1935 ">quinn-rs/quinn#1935</a></li>
<li>Update cargo-deny-action to v2 by <a href="https://github.com/djc "><code>`@djc</code></a>` in <a href="https://redirect.github.com/quinn-rs/quinn/pull/1953 ">quinn-rs/quinn#1953</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="7c09b02073
"><code>7c09b02</code></a> proto: bump version to 0.11.8 for release (<a href="https://redirect.github.com/quinn-rs/quinn/issues/1981 ">#1981</a>)</li>
<li><a href="59bccd2e7e
"><code>59bccd2</code></a> Version bump <code>quinn</code> to enforce patched <code>quinn-proto</code></li>
<li><a href="a8ec510fd1
"><code>a8ec510</code></a> proto: avoid panicking on rustls server config errors</li>
<li><a href="c26e8cd2f7
"><code>c26e8cd</code></a> Bump versions</li>
<li><a href="e01609ccd8
"><code>e01609c</code></a> Merge commit from fork</li>
<li><a href="c292a3c6a6
"><code>c292a3c</code></a> Fix and test validation of IDCID length</li>
<li><a href="bb02a12a84
"><code>bb02a12</code></a> fix(.github/android): use API level 26</li>
<li><a href="5e5cc93645
"><code>5e5cc93</code></a> fix(.github/android): pass matrix.target and increase api to v26</li>
<li><a href="cef42cccef
"><code>cef42cc</code></a> fix(udp): typo in sendmsg error log</li>
<li><a href="edf16a6f10
"><code>edf16a6</code></a> ci(rust.yml): add workflow testing feature permutations</li>
<li>Additional commits viewable in <a href="https://github.com/quinn-rs/quinn/compare/quinn-proto-0.11.3...quinn-proto-0.11.8 ">compare view</a></li>
</ul>
</details>
<br />
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=quinn-proto&package-manager=cargo&previous-version=0.11.3&new-version=0.11.8 )](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores )
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting ``@dependabot` rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
<details>
<summary>Dependabot commands and options</summary>
<br />
You can trigger Dependabot actions by commenting on this PR:
- ``@dependabot` rebase` will rebase this PR
- ``@dependabot` recreate` will recreate this PR, overwriting any edits that have been made to it
- ``@dependabot` merge` will merge this PR after your CI passes on it
- ``@dependabot` squash and merge` will squash and merge this PR after your CI passes on it
- ``@dependabot` cancel merge` will cancel a previously requested merge and block automerging
- ``@dependabot` reopen` will reopen this PR if it is closed
- ``@dependabot` close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- ``@dependabot` show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- ``@dependabot` ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- ``@dependabot` ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/meilisearch/meilisearch/network/alerts ).
</details>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-16 13:32:32 +00:00
Louis Dureuil
23e14138bb
facet distribution: implement Display for OrderBy
2024-09-12 17:43:50 +02:00
Louis Dureuil
e44325683a
Facet distribution: fix issue where truncated facet distribution would have a wrong order
2024-09-12 17:43:49 +02:00
meili-bors[bot]
02c2b660f8
Merge #4920
...
4920: Change OpenAI default model r=dureuill a=dureuill
# Pull Request
## Related issue
Fixes #4856
See also [public usage](https://meilisearch.notion.site/v1-11-AI-search-changes-0e37727193884a70999f254fa953ce6e#b4685a48c4784262a149ec307ec58671 )
## What does this PR do?
- make the `text-embedding-3-small` the default model for OpenAI instead of `text-embedding-ada-002`. Existing embedders are not impacted
Co-authored-by: Louis Dureuil <louis@meilisearch.com>
2024-09-11 07:08:39 +00:00
Louis Dureuil
f18e9cb7b3
Change openai default model
2024-09-09 13:09:35 +02:00
meili-bors[bot]
db0cf3b2ed
Merge #4912
...
4912: Allow Meilitool to dumplessly, offline upgrade v1.9 -> v1.10 in some conditions r=Kerollmops a=dureuill
- bail early if the DB contains at least 1 REST embedder, providing the list of detected REST embedders, and without modifying the DB
- Might depend on the feature set that meilitool was compiled with and the featureset that the Meilisearch that created the DB was compiled with 💀 . In case of runtime error, try again with a different feature set (passing or not passing `-p meilitool` when building after a `cargo clean`)
Co-authored-by: Louis Dureuil <louis@meilisearch.com>
2024-09-05 09:11:23 +00:00
Louis Dureuil
f6abf01d2c
Check REST embedders before touching the DB
2024-09-05 10:49:59 +02:00
Louis Dureuil
28da759f11
meilitool: Support dumpless upgrade from v1.9 to v1.10 when there are no REST embedders
2024-09-05 10:08:38 +02:00
Louis Dureuil
ea96d19525
Change versioning in meili
2024-09-05 10:08:06 +02:00
Louis Dureuil
d352b1ee83
Add serde to meilitool
2024-09-05 10:07:33 +02:00
dependabot[bot]
3f3cebf5f9
Bump quinn-proto from 0.11.3 to 0.11.8
...
Bumps [quinn-proto](https://github.com/quinn-rs/quinn ) from 0.11.3 to 0.11.8.
- [Release notes](https://github.com/quinn-rs/quinn/releases )
- [Commits](https://github.com/quinn-rs/quinn/compare/quinn-proto-0.11.3...quinn-proto-0.11.8 )
---
updated-dependencies:
- dependency-name: quinn-proto
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
2024-09-03 20:50:30 +00:00
meili-bors[bot]
b278815617
Merge #4908
...
4908: Bring back changes from release v1.10.1 to main r=dureuill a=irevoire
# Pull Request
Following the [latest release](https://github.com/meilisearch/meilisearch/releases/tag/v1.10.1 ), this PR brings back the changes to main.
Co-authored-by: Tamo <tamo@meilisearch.com>
Co-authored-by: irevoire <irevoire@users.noreply.github.com>
2024-09-03 14:28:12 +00:00
meili-bors[bot]
40e13ceef3
Merge #4892
...
4892: Add a documentTemplateMaxBytes parameter to limit the max length of document templates r=ManyTheFish a=dureuill
# Pull Request
## Related issue
Fixes #4885
See [public usage](https://meilisearch.notion.site/v1-11-AI-search-changes-0e37727193884a70999f254fa953ce6e#a3d63628129e40adba943ae7b8ec06c2 )
Co-authored-by: Louis Dureuil <louis@meilisearch.com>
2024-09-03 11:50:07 +00:00
Louis Dureuil
18a2c13e4e
add analytics
2024-09-03 12:07:59 +02:00
Louis Dureuil
ed19b7c3c3
Only reindex if the size increased
2024-09-03 12:07:59 +02:00
Louis Dureuil
66bda2ce8a
fix tests
2024-09-03 12:07:58 +02:00
Louis Dureuil
1ac008926b
Add maxBytes parameter
2024-09-03 12:07:15 +02:00
Louis Dureuil
c49d892c82
Changes to prompt
2024-09-03 12:07:10 +02:00
Louis Dureuil
de962a26f3
New error type when maxBytes is null
2024-09-03 12:01:04 +02:00
Tamo
005204e9e5
make the code of init_web_app in common between most tests
2024-09-03 11:40:05 +02:00
Tamo
1040e5e2b4
spawn on search queue per test
2024-09-03 11:20:25 +02:00
meili-bors[bot]
80408c92dc
Merge #4906
...
4906: Add searchable fields to template r=dureuill a=dureuill
# Pull Request
## Related issue
Fixes #4886
See [public usage](https://meilisearch.notion.site/v1-11-AI-search-changes-0e37727193884a70999f254fa953ce6e#1dd6f0eee5a1422888e1c5d48e107cd1 )
## What does this PR do?
- `Prompt::render` now requires and uses metadata to indicate if the fields are searchable or not
- Changes default template
- Updated tests
- Correctly reindex vectors when the list of searchable fields changes in a settings update.
Co-authored-by: Louis Dureuil <louis@meilisearch.com>
2024-09-03 07:14:58 +00:00
Tamo
fa1a0beb0c
fix conflicts after rebase
2024-09-02 18:15:42 +02:00
Tamo
5aefe7cd17
add the snapshots
2024-09-02 16:27:51 +02:00
Tamo
e6dd66e4a0
Do not fail the whole batch when a single document deletion by filter fails
2024-09-02 16:27:51 +02:00
Tamo
6e3839d8b6
autobatch document deletion by filter
2024-09-02 16:27:51 +02:00
Tamo
cd271b8762
stop trying to process searches after one minute
2024-09-02 16:27:51 +02:00
Tamo
3ce8500d4c
ensure we never early exit when we have a permit and remove the warning when we implicitely drop a permit
2024-09-02 16:27:51 +02:00
Tamo
588000d398
add a warning to help us find when we forget to drop explicitely drop a permit
2024-09-02 16:27:51 +02:00
Tamo
92b151607c
explicitely drop the search permit
2024-09-02 16:27:51 +02:00
irevoire
42e7499260
Update version for the next release (v1.10.1) in Cargo.toml
2024-09-02 16:27:51 +02:00
Tamo
41aa1e1424
Only spawn one search queue in actix-web
2024-09-02 16:27:50 +02:00
Louis Dureuil
24ace5c381
Add reindexing test
2024-09-02 13:37:01 +02:00
Louis Dureuil
21296190a3
Reindex embedders
2024-09-02 13:00:53 +02:00
Louis Dureuil
03fda78901
update other tests
2024-09-02 11:31:31 +02:00
Louis Dureuil
30a143f149
Test new facilities
2024-09-02 11:31:23 +02:00
Louis Dureuil
4464d319af
Change default template to use the new facility
2024-09-02 11:30:59 +02:00
Louis Dureuil
580ea2f450
Pass the fields <-> ids map with metadata to render
2024-09-02 11:30:10 +02:00
Louis Dureuil
915cf4bae5
Add field.is_searchable property to fields
2024-09-02 11:28:53 +02:00
meili-bors[bot]
9a756cf2c5
Merge #4888
...
4888: bring back v1.10.0 into main r=Kerollmops a=ManyTheFish
Co-authored-by: Louis Dureuil <louis@meilisearch.com>
Co-authored-by: meili-bors[bot] <89034592+meili-bors[bot]@users.noreply.github.com>
Co-authored-by: Tamo <tamo@meilisearch.com>
Co-authored-by: ManyTheFish <many@meilisearch.com>
2024-08-27 14:02:08 +00:00
meili-bors[bot]
36d8684dc8
Merge #4881
...
4881: Infer locales from index settings r=curquiza a=ManyTheFish
# Pull Request
## Related issue
Fixes #4828
Fixes #4816
## What does this PR do?
- Add some test using `AttributesToSearchOn`
- Make the search infer the language based on the index settings when the `locales` filed is not precise
CI is now working:
https://github.com/meilisearch/meilisearch/actions/runs/10490050545/job/29055955667
Co-authored-by: ManyTheFish <many@meilisearch.com>
2024-08-21 14:18:16 +00:00
ManyTheFish
b12e997c8a
Add pinyin flag
2024-08-21 14:38:04 +02:00
ManyTheFish
8bf89ec394
Infer locales from index settings
2024-08-21 10:47:40 +02:00
meili-bors[bot]
ee62d9ce30
Merge #4845
...
4845: Fix perf regression facet strings r=ManyTheFish a=dureuill
Benchmarks between v1.9 and v1.10 show a performance regression of about x2 (+3dB regression) for most indexing workloads (+44s for hackernews).
[Benchmark interpretation in the engine weekly meeting](https://www.notion.so/meilisearch/Engine-weekly-4d49560d374c4a87b4e3d126a261d4a0?pvs=4#98a709683276450295fcfe1f8ea5cef3 ).
- Initial investigation pointed to #4819 as the origin of the regression.
- Further investigation points towards the hypernormalization of each facet value in `extract_facet_string_docids`
- Most of the slowdown is in `normalize_facet_strings`, and precisely in `detection.language()`.
This PR improves the situation (-10s compared with `main` for hackernews, so only +34s regression compared with `v1.9`) by skipping normalization when it can be skipped.
I'm not sure how to fix the root cause though. Should we skip facet locale normalization for now? Cc `@ManyTheFish`
---
Tentative resolution options:
1. remove locale normalization from facet. I'm not sure why this is required, I believe we weren't doing this before, so maybe we can stop doing that again.
2. don't do language detection when it can be helped: won't help with the regressions in benchmark, but maybe we can skip language detection when the locales contain only one language?
3. use a faster language detection library: `@Kerollmops` told me about https://github.com/quickwit-oss/whichlang which bolsters x10 to x100 throughput compared with whatlang. Should we consider replacing whatlang with whichlang? Now I understand whichlang supports fewer languages than whatlang, so I also suggest:
4. use whichlang when the list of locales is empty (autodetection), or when it only contains locales that whichlang can detect. If the list of locales contains locales that whichlang *cannot* detect, **then** use whatlang instead.
---
> [!CAUTION]
> this PR contains a commit that adds detailed spans, that were used to detect which part of `extract_facet_string_docids` was taking too much time. As this commit adds spans that are called too often and adds 7s overhead, it should be removed before landing.
Co-authored-by: Louis Dureuil <louis@meilisearch.com>
Co-authored-by: ManyTheFish <many@meilisearch.com>
2024-08-19 06:29:48 +00:00
ManyTheFish
0f965d3574
Remove hotloop's spans
2024-08-14 14:33:36 +02:00