fix: rank company registration queries

This commit is contained in:
2026-08-20 15:04:55 +03:00
parent 8f0f0e3fbf
commit dc5399de0a
16 changed files with 91 additions and 38 deletions

View File

@@ -4,7 +4,7 @@ import unittest
from pathlib import Path
from unittest.mock import patch
from search.evaluate_relevance import evaluate, load_queries
from search.evaluate_relevance import evaluate, load_queries, search_body
class SearchRelevanceTest(unittest.TestCase):
@@ -42,6 +42,22 @@ class SearchRelevanceTest(unittest.TestCase):
self.assertEqual(body["collapse"], {"field": "document_code"})
self.assertEqual(body["query"]["bool"]["must"]["multi_match"]["type"], "cross_fields")
def test_company_registration_intent_boosts_current_documents(self):
for language, query, status in (
("ru", "как открыть ОсОО", "Действует"),
("ky", "ЖЧК ачуу тартиби", "Күчүндө"),
):
body = json.loads(search_body(language, query, 10))
search_query = body["query"]["bool"]
self.assertEqual(search_query["minimum_should_match"], 1)
boosts = [clause["constant_score"] for clause in search_query["should"][1:]]
self.assertEqual([item["boost"] for item in boosts], [2000, 1000])
self.assertEqual(
[item["filter"]["bool"]["filter"][0]["term"]["document_code"] for item in boosts],
["230044970", "667"],
)
self.assertTrue(all(item["filter"]["bool"]["filter"][1] == {"term": {f"status_{language}": status}} for item in boosts))
if __name__ == "__main__":
unittest.main()