Files
momentry_core/src/bin/test_synonym_expansion.rs
Warren 2b23d1cfbd feat: update core API, database layer, and worker modules
- Remove unused imports (n8n_search, universal_search, Client, Arc, etc.)
- Update API endpoints for identity, face recognition, search
- Fix postgres_db.rs search_videos parent_uuid column
- Add snapshot API and identity agent API
- Clean up backup files (.bak, .bak2)
2026-04-30 15:07:02 +08:00

57 lines
1.7 KiB
Rust

use anyhow::{Context, Result};
use momentry_core::core::db::{Database, PostgresDb};
use momentry_core::core::text::tokenizer::{contains_chinese, tokenize_chinese_text};
use momentry_core::core::text::{global_synonym_expander, normalize_chinese_query};
use std::env;
#[tokio::main]
async fn main() -> Result<()> {
env::set_var("RUST_LOG", "info");
println!("=== 同義詞擴展測試 ===\n");
// 初始化 PostgreSQL
let pg = PostgresDb::init()
.await
.context("Failed to initialize PostgreSQL database")?;
let expander = global_synonym_expander();
// 測試查詢
let test_queries = vec![
"電腦",
"視頻",
"分析",
"工作",
"檔案",
"電腦工作",
"工作檔案",
];
for query_str in test_queries {
println!("\n🔍 測試查詢: '{}'", query_str);
// 顯示同義詞擴展
if contains_chinese(query_str) {
let normalized = normalize_chinese_query(query_str);
let expanded = expander.expand_chinese_query(&normalized);
println!(" 同義詞擴展: {}", expanded);
}
// 顯示轉換後的 tsquery
match pg.prepare_tsquery(query_str).await {
Ok(tsquery) => println!(" TSQUERY: {}", tsquery),
Err(e) => println!(" TSQUERY 錯誤: {}", e),
}
// 執行搜索(即使沒有結果)
let results = pg.search_bm25(query_str, None, 2).await?;
println!(" 找到 {} 筆結果", results.len());
for (i, r) in results.iter().enumerate() {
println!(" {}. [{}] {}", i + 1, r.uuid, r.text);
}
}
Ok(())
}