Skip to content

Commit d261e13

Browse files
feat(tantivy): Phase 1 foundation fixes (#2799)
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> Co-authored-by: yujonglee <yujonglee.dev@gmail.com>
1 parent 63e9c26 commit d261e13

File tree

5 files changed

+71
-46
lines changed

5 files changed

+71
-46
lines changed

Cargo.lock

Lines changed: 55 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/language/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ codes-iso-639 = { workspace = true }
1515

1616
deepgram = { workspace = true, optional = true, default-features = false, features = ["listen"] }
1717
hypr-whisper = { workspace = true, optional = true }
18-
tantivy = { version = "0.22", optional = true }
18+
tantivy = { version = "0.25", optional = true }
1919
whichlang = { workspace = true, optional = true }
2020

2121
schemars = { workspace = true }

plugins/tantivy/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ tokio = { workspace = true, features = ["macros"] }
1717

1818
[dependencies]
1919
hypr-language = { workspace = true, features = ["detect", "tantivy"] }
20-
tantivy = "0.22"
20+
tantivy = "0.25"
2121

2222
tauri = { workspace = true, features = ["test"] }
2323
tauri-plugin-notify = { workspace = true }

plugins/tantivy/src/query.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1+
use std::ops::Bound;
2+
3+
use tantivy::Term;
14
use tantivy::query::{Query, RangeQuery};
25
use tantivy::schema::Field;
36

47
use crate::CreatedAtFilter;
58

69
pub fn build_created_at_range_query(
7-
_field: Field,
10+
field: Field,
811
filter: &CreatedAtFilter,
912
) -> Option<Box<dyn Query>> {
1013
let lower = filter
@@ -17,14 +20,14 @@ pub fn build_created_at_range_query(
1720
.unwrap_or(i64::MAX);
1821

1922
if let Some(eq) = filter.eq {
20-
Some(Box::new(RangeQuery::new_i64(
21-
"created_at".to_string(),
22-
eq..(eq + 1),
23+
Some(Box::new(RangeQuery::new(
24+
Bound::Included(Term::from_field_i64(field, eq)),
25+
Bound::Excluded(Term::from_field_i64(field, eq + 1)),
2326
)))
2427
} else if lower != i64::MIN || upper != i64::MAX {
25-
Some(Box::new(RangeQuery::new_i64(
26-
"created_at".to_string(),
27-
lower..(upper.saturating_add(1)),
28+
Some(Box::new(RangeQuery::new(
29+
Bound::Included(Term::from_field_i64(field, lower)),
30+
Bound::Excluded(Term::from_field_i64(field, upper.saturating_add(1))),
2831
)))
2932
} else {
3033
None

plugins/tantivy/src/tokenizer.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use tantivy::Index;
22
use tantivy::tokenizer::{
3-
Language, LowerCaser, RemoveLongFilter, SimpleTokenizer, Stemmer, TextAnalyzer,
3+
AsciiFoldingFilter, Language, LowerCaser, RemoveLongFilter, SimpleTokenizer, Stemmer,
4+
TextAnalyzer,
45
};
56

67
pub fn get_tokenizer_name_for_language(lang: &hypr_language::Language) -> &'static str {
@@ -36,6 +37,7 @@ pub fn register_tokenizers(index: &Index) {
3637
let multilang_tokenizer = TextAnalyzer::builder(SimpleTokenizer::default())
3738
.filter(RemoveLongFilter::limit(40))
3839
.filter(LowerCaser)
40+
.filter(AsciiFoldingFilter)
3941
.build();
4042
tokenizer_manager.register("multilang", multilang_tokenizer);
4143

@@ -64,6 +66,7 @@ pub fn register_tokenizers(index: &Index) {
6466
let tokenizer = TextAnalyzer::builder(SimpleTokenizer::default())
6567
.filter(RemoveLongFilter::limit(40))
6668
.filter(LowerCaser)
69+
.filter(AsciiFoldingFilter)
6770
.filter(Stemmer::new(lang))
6871
.build();
6972
tokenizer_manager.register(name, tokenizer);

0 commit comments

Comments
 (0)