tique

Crates.iotique
lib.rstique
version0.7.0
sourcesrc
created_at2020-01-29 13:12:36.744391
updated_at2021-09-11 07:33:23.990321
descriptionUtilities to drive a tantivy search index
homepagehttps://github.com/caio/cantine/tree/master/tique
repositoryhttps://github.com/caio/cantine/
max_upload_size
id203021
size127,198
(caio)

documentation

README

tique

crates.io docs.rs License: MIT

Utilities to drive a tantivy search index

Overview

Here's a brief overview of the functionality we provide. Check the module docs for more details and examples.

conditional_collector

Collectors with built-in support for changing the ordering and cursor-based pagination (or rather: support for conditionally skipping documents that match the query).

use tique::conditional_collector::{Ascending, TopCollector};

let min_rank_collector =
    TopCollector::<f64, Ascending, _>::new(10, true).top_fast_field(f64_field);

topterms

Uses your index to find keywords and similar items to your documents or any arbitrary input.

let topterms = TopTerms::new(&index, vec![body, title])?;
let keywords = topterms.extract(5, "the quick fox jumps over the lazy dog");

let similarity_query = keywords.into_boosted_query(1.0);

QueryParser

A query parser with a simple grammar geared towards usage by end-users, with no knowledge about IR, your index nor boolean logic.

Supports multiple fields, boosts, required (+) and restricted (-) items and can generate queries using DisMaxQuery for better results when you have fields with very similar vocabularies.

NOTE: Requires the queryparser compilation feature.

let parser = tique::QueryParser::new(&index, vec![name, ingredients])?;

if let Some(query) = parser.parse(r#"+bacon cheese -ingredients:olive "deep fry""#) {
    // Do your thing with the query...
}

Dependency Policy

This library's default dependency will always be just tantivy, anything that requires more will be added as optional feature.

Commit count: 495

cargo fmt