From 51fcb90dc0abad93e768190ca305142cb61e1f50 Mon Sep 17 00:00:00 2001 From: Veloman Yunkan Date: Wed, 1 Mar 2023 16:46:30 +0400 Subject: [PATCH] Library::updateBookDB() uses Book::getLanguages() --- src/library.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 1ca875cfb..4982a70bd 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -455,12 +455,14 @@ void Library::updateBookDB(const Book& book) { Xapian::Stem stemmer; Xapian::TermGenerator indexer; - const std::string lang = book.getLanguage(); - try { - stemmer = Xapian::Stem(iso639_3ToXapian(lang)); - indexer.set_stemmer(stemmer); - indexer.set_stemming_strategy(Xapian::TermGenerator::STEM_SOME); - } catch (...) {} + const auto langs = book.getLanguages(); + if ( langs.size() == 1 ) { + try { + stemmer = Xapian::Stem(iso639_3ToXapian(langs[0])); + indexer.set_stemmer(stemmer); + indexer.set_stemming_strategy(Xapian::TermGenerator::STEM_SOME); + } catch (...) {} + } Xapian::Document doc; indexer.set_document(doc); @@ -475,7 +477,9 @@ void Library::updateBookDB(const Book& book) // Index all fields for field-based search indexer.index_text(title, 1, "S"); indexer.index_text(desc, 1, "XD"); - indexer.index_text(lang, 1, "L"); + for ( const auto& lang : langs ) { + indexer.index_text(lang, 1, "L"); + } indexer.index_text(normalizeText(book.getCreator()), 1, "A"); indexer.index_text(normalizeText(book.getPublisher()), 1, "XP"); indexer.index_text(normalizeText(book.getName()), 1, "XN");