176ffd23f5
Fix compile error after rebasing wppd-refactor
2022-10-18 10:40:26 +02:00
e6e76fbefe
Improve performance of resolve_phrase at the cost of some relevancy
2022-10-18 10:37:34 +02:00
830a7c0c7a
Use resolve_phrase
function for exactness criteria as well
2022-10-18 10:37:34 +02:00
18d578dfc4
Adjust some algorithms using DBs of word pair proximities
2022-10-18 10:37:34 +02:00
1dbbd8694f
Rename StrStrU8Codec to U8StrStrCodec and reorder its fields
2022-10-18 10:37:34 +02:00
81919a35a2
Update milli/src/search/criteria/initial.rs
...
Co-authored-by: Clément Renault <clement@meilisearch.com >
2022-10-17 18:23:20 +02:00
516e838eb4
Update milli/src/search/criteria/initial.rs
...
Co-authored-by: Clément Renault <clement@meilisearch.com >
2022-10-17 18:23:15 +02:00
6603437cb1
Introduce an indexation abortion function when indexing documents
2022-10-17 17:28:03 +02:00
6f55e7844c
Add some code comments
2022-10-17 14:41:57 +02:00
cf203b7fde
Take filter in account when computing the pages candidates
2022-10-17 14:13:44 +02:00
d71bc1e69f
Compute an exact count when using distinct
2022-10-17 14:13:44 +02:00
a396806343
Add settings to force milli to exhaustively compute the total number of hits
2022-10-17 14:13:44 +02:00
beb987d3d1
Fixing piles of clippy errors.
...
Most of these are calling clone when the struct supports Copy.
Many are using & and &mut on `self` when the function they are called
from already has an immutable or mutable borrow so this isn't needed.
I tried to stay away from actual changes or places where I'd have to
name fresh variables.
2022-10-13 22:02:54 +02:00
85f3028317
remove underscore and introduce back word_documents_count
2022-10-13 13:21:59 +05:30
8195fc6141
revert removal of word_documents_count method
2022-10-13 13:14:27 +05:30
32f825d442
move default implementation of word_pair_frequency to TestContext
2022-10-13 12:57:50 +05:30
ff8b2d4422
formatting
2022-10-13 12:44:08 +05:30
6cb8b46900
use word_pair_frequency and remove word_documents_count
2022-10-13 12:43:11 +05:30
8c9245149e
format file
2022-10-12 15:27:56 +05:30
63e79a9039
update comment
2022-10-12 13:36:48 +05:30
7f9680f0a0
Enhance word splitting strategy
2022-10-12 13:18:23 +05:30
bf750e45a1
Fix word removal issue
2022-09-01 12:10:47 +02:00
a38608fe59
Add test mixing phrased and no-phrased words
2022-09-01 12:02:10 +02:00
f6024b3269
Remove the artifacts of the past
2022-08-23 16:10:38 +02:00
5391e3842c
replace optional_words by term_matching_strategy
2022-08-22 17:47:19 +02:00
993aa1321c
Fix query tree building
2022-08-18 17:56:06 +02:00
bff9653050
Fix remove count
2022-08-18 17:36:30 +02:00
9640976c79
Rename TermMatchingPolicies
2022-08-18 17:36:08 +02:00
afc10acd19
Merge #596
...
596: Filter operators: NOT + IN[..] r=irevoire a=loiclec
# Pull Request
## What does this PR do?
Implements the changes described in https://github.com/meilisearch/meilisearch/issues/2580
It is based on top of #556
Co-authored-by: Loïc Lecrenier <loic@meilisearch.com >
2022-08-18 11:24:32 +00:00
9b6602cba2
Avoid cloning FilterCondition in filter array parsing
2022-08-18 13:06:57 +02:00
c51dcad51b
Don't recompute filterable fields in evaluation of IN[] filter
2022-08-18 10:59:21 +02:00
e4a52e6e45
Merge #594
...
594: Fix(Search): Fix phrase search candidates computation r=Kerollmops a=ManyTheFish
This bug is an old bug but was hidden by the proximity criterion,
Phrase searches were always returning an empty candidates list when the proximity criterion is deactivated.
Before the fix, we were trying to find any words[n] near words[n]
instead of finding any words[n] near words[n+1], for example:
for a phrase search '"Hello world"' we were searching for "hello" near "hello" first, instead of "hello" near "world".
Co-authored-by: ManyTheFish <many@meilisearch.com >
2022-08-17 13:22:52 +00:00
8c3f1a9c39
Remove useless lifetime declaration
2022-08-17 15:20:43 +02:00
196f79115a
Run cargo fmt
2022-08-17 12:28:33 +02:00
ca97cb0eda
Implement the IN filter operator
2022-08-17 12:28:33 +02:00
cc7415bb31
Simplify FilterCondition code, made possible by the new NOT operator
2022-08-17 12:28:33 +02:00
44744d9e67
Implement the simplified NOT operator
2022-08-17 12:28:33 +02:00
01675771d5
Reimplement !=
filter to select all docids not selected by =
2022-08-17 12:28:33 +02:00
258c3dd563
Make AND+OR filters n-ary (store a vector of subfilters instead of 2)
...
NOTE: The token_at_depth is method is a bit useless now, as the only
cases where there would be a toke at depth 1000 are the cases where
the parser already stack-overflowed earlier.
Example: (((((... (x=1) ...)))))
2022-08-17 12:28:33 +02:00
dea00311b6
Add type annotations to remove compiler error
2022-08-16 09:19:30 +02:00
748bb86b5b
cargo fmt
2022-08-10 15:53:46 +02:00
051f24f674
Switch to snapshot tests for search/matches/mod.rs
2022-08-10 15:53:46 +02:00
d2e01528a6
Switch to snapshot tests for search/criteria/typo.rs
2022-08-10 15:53:46 +02:00
a9c7d82693
Switch to snapshot tests for search/criteria/attribute.rs
2022-08-10 15:53:46 +02:00
4bba2f41d7
Switch to snapshot tests for query_tree.rs
2022-08-10 15:53:46 +02:00
8ac24d3114
Cargo fmt + fix compiler warnings/error
2022-08-10 15:53:46 +02:00
b389be48a0
Factorize phrase computation
2022-08-08 10:37:31 +02:00
58cb1c1bda
Simplify unit tests in facet/filter.rs
2022-08-04 12:03:44 +02:00
07003704a8
Merge branch 'filter/field-exist'
2022-07-21 14:51:41 +02:00
cbb3b25459
Fix(Search): Fix phrase search candidates computation
...
This bug is an old bug but was hidden by the proximity criterion,
Phrase search were always returning an empty candidates list.
Before the fix, we were trying to find any words[n] near words[n]
instead of finding any words[n] near words[n+1], for example:
for a phrase search '"Hello world"' we were searching for "hello" near "hello" first, instead of "hello" near "world".
2022-07-21 10:04:30 +02:00