Skip to content

Commit 9456212

Browse files
committed
various fixes
1 parent 62eec57 commit 9456212

File tree

1 file changed

+15
-13
lines changed

1 file changed

+15
-13
lines changed

src/lib.rs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,27 +16,29 @@ struct MilliEmbedded {
1616
#[pymethods]
1717
impl MilliEmbedded {
1818
#[new]
19-
fn new(index_path: &str, searchable_fields: Vec<String>, filterable_fields: HashSet<String>) -> PyResult<Self> {
19+
fn new(index_path: &str, primary_key: String, searchable_fields: Vec<String>, filterable_fields: HashSet<String>) -> PyResult<Self> {
2020
std::fs::create_dir_all(&index_path)
2121
.map_err(|e| PyRuntimeError::new_err(format!("Cannot create index path: {e}")))?;
2222

23-
let options = EnvOpenOptions::new();
23+
let mut options = EnvOpenOptions::new();
24+
options.map_size(100 * 1024 * 1024 * 1024); // 100 GB
2425
let index = milli::Index::new(options, index_path)
2526
.map_err(|e| PyRuntimeError::new_err(format!("Cannot create index, {e}")))?;
2627

2728
let mut wtxn = index.write_txn().unwrap();
2829
let config = IndexerConfig::default();
2930
let mut builder = Settings::new(&mut wtxn, &index, &config);
31+
builder.set_primary_key(primary_key);
3032
builder.set_searchable_fields(searchable_fields);
3133
builder.set_filterable_fields(filterable_fields);
32-
builder.set_criteria(vec![
33-
Criterion::Words,
34-
Criterion::Typo,
35-
Criterion::Proximity,
36-
Criterion::Attribute,
37-
Criterion::Sort,
38-
Criterion::Exactness,
39-
]);
34+
// builder.set_criteria(vec![
35+
// Criterion::Proximity,
36+
// Criterion::Words,
37+
// Criterion::Typo,
38+
// Criterion::Attribute,
39+
// Criterion::Sort,
40+
// Criterion::Exactness,
41+
// ]);
4042

4143
builder.execute(|_| (), || false).map_err(|e| PyRuntimeError::new_err(format!("Cannot execute index builder, {e}")))?;
4244

@@ -97,7 +99,7 @@ impl MilliEmbedded {
9799
Ok((build_res.indexed_documents, build_res.number_of_documents))
98100
}
99101

100-
fn search(&self, py: Python, query: String, return_fields: HashSet<String>) -> PyResult<String> {
102+
fn search(&self, py: Python, query: String, return_fields: HashSet<String>, from: usize, length: usize) -> PyResult<String> {
101103
py.allow_threads(|| {
102104
let txn = self.index.read_txn().map_err(|e| PyRuntimeError::new_err(format!("{}", e)))?;
103105
let mut ctx = SearchContext::new(&self.index, &txn).map_err(|e| PyRuntimeError::new_err(format!("{}", e)))?;
@@ -111,8 +113,8 @@ impl MilliEmbedded {
111113
universe,
112114
&None,
113115
GeoSortStrategy::default(),
114-
0,
115-
20,
116+
from,
117+
length,
116118
None,
117119
&mut DefaultSearchLogger,
118120
&mut DefaultSearchLogger,

0 commit comments

Comments
 (0)