use crate::{BoolExpr, ValueExpr};
use super::function;
pub fn to_tsvector(document: impl Into<ValueExpr>) -> ValueExpr {
function("to_tsvector", [document])
}
pub fn to_tsvector_config(
config: impl Into<ValueExpr>,
document: impl Into<ValueExpr>,
) -> ValueExpr {
function(
"to_tsvector",
[
ValueExpr::cast_expr(config.into(), "regconfig"),
document.into(),
],
)
}
pub fn plainto_tsquery(query: impl Into<ValueExpr>) -> ValueExpr {
function("plainto_tsquery", [query])
}
pub fn phraseto_tsquery(query: impl Into<ValueExpr>) -> ValueExpr {
function("phraseto_tsquery", [query])
}
pub fn phraseto_tsquery_config(
config: impl Into<ValueExpr>,
query: impl Into<ValueExpr>,
) -> ValueExpr {
function(
"phraseto_tsquery",
[
ValueExpr::cast_expr(config.into(), "regconfig"),
query.into(),
],
)
}
pub fn websearch_to_tsquery(query: impl Into<ValueExpr>) -> ValueExpr {
function("websearch_to_tsquery", [query])
}
pub fn to_tsquery(query: impl Into<ValueExpr>) -> ValueExpr {
function("to_tsquery", [query])
}
pub fn ts_match(document: impl Into<ValueExpr>, query: impl Into<ValueExpr>) -> BoolExpr {
BoolExpr::infix(document.into(), "@@", query.into(), false)
}
pub fn ts_rank(vector: impl Into<ValueExpr>, query: impl Into<ValueExpr>) -> ValueExpr {
function("ts_rank", [vector.into(), query.into()])
}
pub fn ts_rank_cd(vector: impl Into<ValueExpr>, query: impl Into<ValueExpr>) -> ValueExpr {
function("ts_rank_cd", [vector.into(), query.into()])
}
pub fn ts_headline(args: impl IntoIterator<Item = impl Into<ValueExpr>>) -> ValueExpr {
function("ts_headline", args)
}