feat(integrations): implement query expansion for semantic search #44

Merged
sarman merged 5 commits from feature/integration-search-expansion into master 2026-04-15 01:44:43 +00:00
2 changed files with 14 additions and 2 deletions
Showing only changes of commit 708e1e9c18 - Show all commits

View File

@ -5,6 +5,15 @@ const MAX_EXPANDED_QUERIES: usize = 3;
fn escape_wiql(s: &str) -> String {
s.replace('\'', "''")
.replace('"', "\\\"")
.replace('\\', "\\\\")
.replace('(', "\\(")
.replace(')', "\\)")
.replace('~', "\\~")
.replace('*', "\\*")
.replace('?', "\\?")
.replace(';', "\\;")
.replace('=', "\\=")
}
/// Search Azure DevOps Wiki for content matching the query

View File

@ -57,7 +57,10 @@ pub async fn search_confluence(
urlencoding::encode(&safe_query)
);
tracing::info!("Searching Confluence with expanded query: {}", search_url);
tracing::info!(
"Searching Confluence with expanded query: {}",
expanded_query
);
let resp = client
.get(&search_url)
@ -80,7 +83,7 @@ pub async fn search_confluence(
.map_err(|e| format!("Failed to parse Confluence search response: {e}"))?;
if let Some(results_array) = json["results"].as_array() {
for item in results_array.iter().take(3) {
for item in results_array.iter().take(MAX_EXPANDED_QUERIES) {
let title = item["title"].as_str().unwrap_or("Untitled").to_string();
let id = item["content"]["id"].as_str();