8个版本 (破坏性更新)

0.7.0 2021年9月11日
0.6.0 2021年6月14日
0.5.0 2021年2月7日
0.4.0 2020年3月17日
0.1.1 2020年1月30日

#16 in #pagination

MIT许可证

93KB
2K SLoC

tique

crates.io docs.rs License: MIT

用于驱动tantivy搜索索引的实用工具

概览

以下是我们所提供功能的简要概述。有关更多详细信息,请参阅模块文档和示例。

conditional_collector

支持更改排序和基于游标的分页(或者更准确地说:支持有条件地跳过与查询匹配的文档)的收集器。

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

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

topterms

使用您的索引来查找与您的文档或任何任意输入相关的关键词和类似项。

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

一个面向最终用户的简单语法查询解析器,无需了解IR、您的索引或布尔逻辑。

支持多个字段、提升、必需(+)和限制(-)项,并且可以使用DisMaxQuery生成查询,以在具有非常相似词汇表的字段上获得更好的结果。

注意:需要queryparser编译功能。

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...
}

依赖策略

此库的默认依赖始终是tantivy,任何需要更多内容的都将作为可选功能添加。

依赖关系

~22MB
~355K SLoC