diff --git a/backend/search/query.py b/backend/search/query.py index e750329..3df5858 100644 --- a/backend/search/query.py +++ b/backend/search/query.py @@ -35,6 +35,14 @@ def query_variants(language: str, query: str) -> list[str]: def company_registration_clauses(language: str, query: str) -> list[dict]: + non_registration_context = { + "ru": (r"\bсч[её]т\w*", r"\bбанк\w*", r"\bфилиал\w*", r"\bпредставительств\w*"), + "ky": (r"\bбанк\w*", r"\bэсеп\w*", r"\bфилиал\w*", r"\bөкүлчүлүк\w*"), + }[language] + normalized_query = query.casefold() + if any(re.search(pattern, normalized_query) for pattern in non_registration_context): + return [] + forms, patterns = { "ru": ( r"(?:осоо|ооо|обществ\w*\s+с\s+ограниченной\s+ответственностью)", @@ -55,7 +63,7 @@ def company_registration_clauses(language: str, query: str) -> list[dict]: ), ), }[language] - if not any(re.search(pattern.format(form=forms), query.casefold()) for pattern in patterns): + if not any(re.search(pattern.format(form=forms), normalized_query) for pattern in patterns): return [] status = {"ru": "Действует", "ky": "Күчүндө"}[language] diff --git a/backend/test_search_relevance.py b/backend/test_search_relevance.py index 523022f..d7687aa 100644 --- a/backend/test_search_relevance.py +++ b/backend/test_search_relevance.py @@ -70,6 +70,8 @@ class SearchRelevanceTest(unittest.TestCase): ("ru", "ОсОО зарегистрирован?"), ("ru", "кто зарегистрировал ОсОО"), ("ru", "как открыть счет ОсОО"), + ("ru", "как открыть ОсОО банковский счет"), + ("ru", "как открыть ОсОО банковский счёт"), ("ru", "как открыть филиал ОсОО"), ("ru", "как создать договор для ОсОО"), ("ru", "порядок создания логотипа ОсОО"),