Skip to content

Commit 3ffaeb8

Browse files
authored
chore: internal API visibility adjustments (#53)
1 parent 150ceab commit 3ffaeb8

22 files changed

Lines changed: 151 additions & 55 deletions

.github/workflows/test.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@ jobs:
7676
profile: minimal
7777
override: true
7878

79-
- uses: taiki-e/install-action@nextest
79+
- uses: taiki-e/install-action@v2
80+
with:
81+
tool: 'nextest'
8082
- uses: Swatinem/rust-cache@v2
8183

8284
- name: Run tests

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,4 @@ variable
1717

1818
# for `sample record -p`
1919
profile.json
20+
profile.json.gz

src/postings/loaded_postings.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ use crate::DocId;
1515
/// terms.
1616
/// E.g. 100_000 terms would need 184MB due to SegmentPostings.
1717
pub struct LoadedPostings {
18-
doc_ids: Box<[DocId]>,
19-
position_offsets: Box<[u32]>,
20-
positions: Box<[u32]>,
21-
cursor: usize,
18+
pub doc_ids: Box<[DocId]>,
19+
pub position_offsets: Box<[u32]>,
20+
pub positions: Box<[u32]>,
21+
pub cursor: usize,
2222
}
2323

2424
impl LoadedPostings {

src/postings/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ mod serializer;
2121
pub(crate) mod skip;
2222
mod term_info;
2323

24-
pub(crate) use loaded_postings::LoadedPostings;
24+
pub use loaded_postings::LoadedPostings;
2525
pub(crate) use stacker::compute_table_memory_size;
2626

2727
pub use self::block_segment_postings::BlockSegmentPostings;

src/query/boolean_query/boolean_query.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
use super::boolean_weight::BooleanWeight;
22
use crate::query::{EnableScoring, Occur, Query, SumCombiner, TermQuery, Weight};
3-
use crate::schema::{IndexRecordOption, Term};
3+
use crate::schema::{Field, IndexRecordOption, Term};
4+
use crate::SegmentReader;
45

56
/// The boolean query returns a set of documents
67
/// that matches the Boolean combination of constituent subqueries.
@@ -168,9 +169,14 @@ impl Query for BooleanQuery {
168169
)))
169170
}
170171

171-
fn query_terms<'a>(&'a self, visitor: &mut dyn FnMut(&'a Term, bool)) {
172+
fn query_terms(
173+
&self,
174+
field: Field,
175+
segment_reader: &SegmentReader,
176+
visitor: &mut dyn FnMut(&Term, bool),
177+
) {
172178
for (_occur, subquery) in &self.subqueries {
173-
subquery.query_terms(visitor);
179+
subquery.query_terms(field, segment_reader, visitor);
174180
}
175181
}
176182
}

src/query/boost_query.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use std::fmt;
33
use crate::docset::COLLECT_BLOCK_BUFFER_LEN;
44
use crate::fastfield::AliveBitSet;
55
use crate::query::{EnableScoring, Explanation, Query, Scorer, Weight};
6+
use crate::schema::Field;
67
use crate::{DocId, DocSet, Score, SegmentReader, Term};
78

89
/// `BoostQuery` is a wrapper over a query used to boost its score.
@@ -48,8 +49,13 @@ impl Query for BoostQuery {
4849
Ok(boosted_weight)
4950
}
5051

51-
fn query_terms<'a>(&'a self, visitor: &mut dyn FnMut(&'a Term, bool)) {
52-
self.query.query_terms(visitor)
52+
fn query_terms(
53+
&self,
54+
field: Field,
55+
segment_reader: &SegmentReader,
56+
visitor: &mut dyn FnMut(&Term, bool),
57+
) {
58+
self.query.query_terms(field, segment_reader, visitor)
5359
}
5460
}
5561

src/query/const_score_query.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ use std::fmt;
22

33
use crate::docset::COLLECT_BLOCK_BUFFER_LEN;
44
use crate::query::{EnableScoring, Explanation, Query, Scorer, Weight};
5+
use crate::schema::Field;
56
use crate::{DocId, DocSet, Score, SegmentReader, TantivyError, Term};
67

78
/// `ConstScoreQuery` is a wrapper over a query to provide a constant score.
@@ -46,8 +47,13 @@ impl Query for ConstScoreQuery {
4647
})
4748
}
4849

49-
fn query_terms<'a>(&'a self, visitor: &mut dyn FnMut(&'a Term, bool)) {
50-
self.query.query_terms(visitor);
50+
fn query_terms(
51+
&self,
52+
field: Field,
53+
segment_reader: &SegmentReader,
54+
visitor: &mut dyn FnMut(&Term, bool),
55+
) {
56+
self.query.query_terms(field, segment_reader, visitor);
5157
}
5258
}
5359

src/query/disjunction_max_query.rs

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use crate::query::{BooleanWeight, DisjunctionMaxCombiner, EnableScoring, Occur, Query, Weight};
2-
use crate::{Score, Term};
2+
use crate::schema::Field;
3+
use crate::{Score, SegmentReader, Term};
34

45
/// The disjunction max query returns documents matching one or more wrapped queries,
56
/// called query clauses or clauses.
@@ -104,9 +105,14 @@ impl Query for DisjunctionMaxQuery {
104105
)))
105106
}
106107

107-
fn query_terms<'a>(&'a self, visitor: &mut dyn FnMut(&'a Term, bool)) {
108+
fn query_terms(
109+
&self,
110+
field: Field,
111+
segment_reader: &SegmentReader,
112+
visitor: &mut dyn FnMut(&Term, bool),
113+
) {
108114
for disjunct in &self.disjuncts {
109-
disjunct.query_terms(visitor);
115+
disjunct.query_terms(field, segment_reader, visitor);
110116
}
111117
}
112118
}

src/query/explanation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use serde::Serialize;
55

66
use crate::{DocId, Score, TantivyError};
77

8-
pub(crate) fn does_not_match(doc: DocId) -> TantivyError {
8+
pub fn does_not_match(doc: DocId) -> TantivyError {
99
TantivyError::InvalidArgument(format!("Document #({doc}) does not match"))
1010
}
1111

src/query/fuzzy_query.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ mod test {
230230
let get_json_path_term = |query: &str| -> crate::Result<Term> {
231231
let query = query_parser.parse_query(query)?;
232232
let mut terms = Vec::new();
233-
query.query_terms(&mut |term, _| {
233+
query.query_terms(attributes, searcher.segment_reader(0), &mut |term, _| {
234234
terms.push(term.clone());
235235
});
236236

0 commit comments

Comments
 (0)