fix: normalize javascript / typescript / jsx /tsx in query side (#980)

support-auth-token
Meng Zhang 2023-12-08 11:04:09 +08:00 committed by GitHub
parent bdede03333
commit 928f1c527c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 24 additions and 0 deletions

View File

@ -79,6 +79,15 @@ impl Default for CodeSearchSchema {
impl CodeSearchSchema {
pub fn language_query(&self, language: &str) -> Box<TermQuery> {
let language = if language == "javascript"
|| language == "typescript"
|| language == "javascriptreact"
|| language == "typescriptreact"
{
"javascript-typescript"
} else {
language
};
Box::new(TermQuery::new(
Term::from_field_text(self.field_language, language),
IndexRecordOption::WithFreqsAndPositions,
@ -93,3 +102,18 @@ impl CodeSearchSchema {
))
}
}
#[cfg(test)]
mod tests {
use super::CodeSearchSchema;
#[test]
fn test_language_query() {
let schema = CodeSearchSchema::new();
let lhs = schema.language_query("javascript-typescript");
assert_eq!(lhs.term(), schema.language_query("javascript").term());
assert_eq!(lhs.term(), schema.language_query("typescript").term());
assert_eq!(lhs.term(), schema.language_query("typescriptreact").term());
assert_eq!(lhs.term(), schema.language_query("javascriptreact").term());
}
}