pub struct QueryRewriter { /* private fields */ }Expand description
查询重写器 — 通过启发式规则或 LLM 优化搜索查询
使用场景:
- 用户输入自然语言 → 提取关键词
- 拆分复杂查询为多个子查询
- 多角度表述同一查询
Implementations§
Source§impl QueryRewriter
impl QueryRewriter
pub fn new(prompt_template: &str) -> Self
Sourcepub async fn rewrite_with_template(
&self,
query: &str,
template: RewriteTemplate,
) -> Result<Vec<String>, SearchError>
pub async fn rewrite_with_template( &self, query: &str, template: RewriteTemplate, ) -> Result<Vec<String>, SearchError>
使用模板重写查询(无 LLM 的启发式实现)
Sourcepub async fn rewrite_with_llm(
&self,
query: &str,
template: RewriteTemplate,
provider: Option<&dyn QueryRewriteProvider>,
) -> Result<Vec<String>, SearchError>
pub async fn rewrite_with_llm( &self, query: &str, template: RewriteTemplate, provider: Option<&dyn QueryRewriteProvider>, ) -> Result<Vec<String>, SearchError>
使用 LLM 提供者改写查询。无 provider 时回退到启发式方法。
Sourcepub async fn multi_perspective(
&self,
query: &str,
n: usize,
) -> Result<Vec<String>, SearchError>
pub async fn multi_perspective( &self, query: &str, n: usize, ) -> Result<Vec<String>, SearchError>
多角度查询拓展
Trait Implementations§
Auto Trait Implementations§
impl Freeze for QueryRewriter
impl RefUnwindSafe for QueryRewriter
impl Send for QueryRewriter
impl Sync for QueryRewriter
impl Unpin for QueryRewriter
impl UnsafeUnpin for QueryRewriter
impl UnwindSafe for QueryRewriter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more