Improve LightRAG knowledge search locator alignment
This commit is contained in:
@@ -3685,11 +3685,12 @@ fn score_evidence_text_match(text: &str, query: &str) -> Option<EvidenceTextMatc
|
||||
.map(|index| (alternative.clone(), index))
|
||||
})
|
||||
.collect::<Vec<_>>();
|
||||
let partial_allowed = if terms.len() > 1 {
|
||||
!partial_matches.is_empty()
|
||||
} else {
|
||||
partial_matches.len() >= 2 || term.normalized.chars().count() <= 2
|
||||
};
|
||||
let partial_allowed = !partial_matches.is_empty()
|
||||
&& if terms.len() > 1 {
|
||||
true
|
||||
} else {
|
||||
partial_matches.len() >= 2
|
||||
};
|
||||
if partial_allowed {
|
||||
partial_count += 1;
|
||||
if let Some((_, index)) = partial_matches.first() {
|
||||
@@ -4198,6 +4199,12 @@ mod tests {
|
||||
let _ = fs::remove_dir_all(&root);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn local_search_two_char_cjk_query_requires_real_match() {
|
||||
assert!(score_evidence_text_match("13. N -甲基吗啉 N -氧化物", "吗啉").is_some());
|
||||
assert!(score_evidence_text_match("Scope Alpha SOURCE SCOPE RAG", "吗啉").is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn local_index_settings_restricts_search_and_evidence_scope() {
|
||||
let root = temp_root("mnote-local-index-settings-scope");
|
||||
|
||||
Reference in New Issue
Block a user