small changes

This commit is contained in:
Paul Masurel
2018-08-31 09:03:44 +09:00
parent 6704ab6987
commit f570fe37d4
6 changed files with 24 additions and 4 deletions

View File

@@ -64,10 +64,9 @@ fn main() -> tantivy::Result<()> {
for doc_address in doc_addresses {
let retrieved_doc = searcher.doc(&doc_address)?;
generate_snippet(&retrieved_doc, query
// generate_snippet(&retrieved_doc, query
}
Ok(())
}

View File

@@ -41,7 +41,6 @@ impl<A> Weight for AutomatonWeight<A>
where
A: Automaton,
{
fn matching_terms(&self,
reader: &SegmentReader,
matching_terms: &mut MatchingTerms) -> Result<()> {

View File

@@ -13,6 +13,7 @@ use query::Weight;
use std::borrow::Borrow;
use std::collections::HashMap;
use Result;
use query::MatchingTerms;
fn scorer_union<TScoreCombiner>(scorers: Vec<Box<Scorer>>) -> Box<Scorer>
where
@@ -107,6 +108,14 @@ impl BooleanWeight {
}
impl Weight for BooleanWeight {
fn matching_terms(&self, reader: &SegmentReader, matching_terms: &mut MatchingTerms) -> Result<()> {
for (_, weight) in &self.weights {
weight.matching_terms(reader, matching_terms)?;
}
Ok(())
}
fn scorer(&self, reader: &SegmentReader) -> Result<Box<Scorer>> {
if self.weights.is_empty() {
Ok(Box::new(EmptyScorer))

View File

@@ -7,6 +7,7 @@ use query::Weight;
use schema::IndexRecordOption;
use schema::Term;
use Result;
use query::MatchingTerms;
pub struct PhraseWeight {
phrase_terms: Vec<(usize, Term)>,
@@ -30,6 +31,11 @@ impl PhraseWeight {
}
impl Weight for PhraseWeight {
fn matching_terms(&self, reader: &SegmentReader, matching_terms: &mut MatchingTerms) -> Result<()> {
unimplemented!();
}
fn scorer(&self, reader: &SegmentReader) -> Result<Box<Scorer>> {
let similarity_weight = self.similarity_weight.clone();
let field = self.phrase_terms[0].1.field();

View File

@@ -11,6 +11,7 @@ use std::collections::Bound;
use std::ops::Range;
use termdict::{TermDictionary, TermStreamer};
use Result;
use query::MatchingTerms;
fn map_bound<TFrom, TTo, Transform: Fn(&TFrom) -> TTo>(
bound: &Bound<TFrom>,
@@ -274,6 +275,11 @@ impl RangeWeight {
}
impl Weight for RangeWeight {
fn matching_terms(&self, reader: &SegmentReader, matching_terms: &mut MatchingTerms) -> Result<()> {
unimplemented!();
}
fn scorer(&self, reader: &SegmentReader) -> Result<Box<Scorer>> {
let max_doc = reader.max_doc();
let mut doc_bitset = BitSet::with_max_value(max_doc);

View File

@@ -200,6 +200,7 @@ fn matching_terms(query: &Query, searcher: &Searcher, doc_addresses: &[DocAddres
let segment_reader = searcher.segment_reader(segment_ord);
weight.matching_terms(segment_reader, &mut matching_terms)?;
}
let terms = HashSet<(DocId, Vec<Term>)>;
Ok(())
}
@@ -209,7 +210,7 @@ pub fn generate_snippet<'a>(
query: &Query,
terms: Vec<Term>,
max_num_chars: usize) -> Snippet {
unimplemented!();
search_fragments(boxed_tokenizer, &text, terms, 3);
}
#[cfg(test)]