Exemplo n.º 1
0
    def test_basic_coarse_rank_scoring_coefficient(self):
        config = load_json_file("10_config.json")
        queries = load_json_file("10_query.json")
        document = load_json_file("10_document.json")
        document2 = load_json_file("10_document_2.json")
        document3 = load_json_file("10_document_3.json")
        document4 = load_json_file("10_document_4.json")

        test.test_utils.initialize_elasticsearch(
            [document, document2, document3, document4],
            config["components"][0])

        executor = Executor(config)

        try:
            for query in queries:
                result = executor.execute(query)
                result_dict = result.to_dict()
                self.assertEqual(len(result.hits), 4)
                self.assertEqual(
                    "ABCDEFGHIJKLMNOPQ",
                    result_dict["hits"]["hits"][0]["_source"]["doc_id"])
                self.assertEqual(
                    "DEFGHIJKLMNOPQABCD",
                    result_dict["hits"]["hits"][1]["_source"]["doc_id"])
                self.assertEqual(
                    "GHIJKLMNOPQABCDEF",
                    result_dict["hits"]["hits"][2]["_source"]["doc_id"])
                self.assertEqual(
                    "JKLMNOPQABCDEFGHI",
                    result_dict["hits"]["hits"][3]["_source"]["doc_id"])
        finally:
            test.test_utils.reset_elasticsearch(config["components"][0])
            executor.teardown()
Exemplo n.º 2
0
    def test_basic_coarse_executing_network_expansion(self):
        config = load_json_file("8_config.json")
        queries = load_json_file("8_query.json")
        document = load_json_file("8_document.json")
        document2 = load_json_file("8_document_2.json")
        document3 = load_json_file("8_document_3.json")
        document4 = load_json_file("8_document_4.json")
        document5 = load_json_file("8_document_5.json")
        document6 = load_json_file("8_document_6.json")
        mapping = load_json_file("8_mapping.json")

        test.test_utils.initialize_elasticsearch(
            [document, document2, document3, document4, document5, document6],
            config["components"][0], mapping)

        executor = Executor(config)

        try:
            for query in queries:
                results = executor.execute(query)
                result1 = results[0]
                self.assertEqual(len(result1.hits), 4)
                result2 = results[1]
                result2_dict = result2.to_dict()
                self.assertEqual(len(result2.hits), 5)
                self.assertEqual(
                    "JKLMNOPQABCDEFGHI",
                    result2_dict["hits"]["hits"][4]["_source"]["doc_id"])
        finally:
            test.test_utils.reset_elasticsearch(config["components"][0])
            executor.teardown()
Exemplo n.º 3
0
    def test_basic_coarse_executing_aggregation(self):
        config = load_json_file("6_config.json")
        queries = load_json_file("6_query.json")
        document = load_json_file("6_document.json")
        mapping = load_json_file("6_mapping.json")

        test.test_utils.initialize_elasticsearch([document],
                                                 config["components"][0],
                                                 mapping)

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            result_dict = result.to_dict()
            # aggregation queries should not return any documents
            self.assertEqual(len(result.hits), 0)
            self.assertIn("aggregations", result_dict)
            self.assertIn("?ethnicity", result_dict["aggregations"])
            self.assertEqual(
                1, len(result_dict["aggregations"]["?ethnicity"]["buckets"]))
            self.assertEqual(
                1, result_dict["aggregations"]["?ethnicity"]["buckets"][0]
                ["doc_count"])

        test.test_utils.reset_elasticsearch(config["components"][0])
        executor.teardown()
Exemplo n.º 4
0
    def test_basic_coarse_executing_date_filters(self):
        config = load_json_file("4_config.json")
        queries = load_json_file("4_query.json")
        document = load_json_file("4_document.json")

        test.test_utils.initialize_elasticsearch([document],
                                                 config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            self.assertEquals(len(result.hits), 1)

        test.test_utils.reset_elasticsearch(config["components"][0])
Exemplo n.º 5
0
    def test_basic_coarse_executing_date_filters(self):
        config = load_json_file("4_config.json")
        queries = load_json_file("4_query.json")
        document = load_json_file("4_document.json")

        test.test_utils.initialize_elasticsearch([document],
                                                 config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            self.assertEquals(len(result.hits), 1)

        test.test_utils.reset_elasticsearch(config["components"][0])
Exemplo n.º 6
0
    def test_basic_coarse_executing_sparql_unnesting(self):
        config = load_json_file("5_config.json")
        queries = load_json_file("5_query.json")
        ad_document = load_json_file("5_document_ad.json")
        cluster_document = load_json_file("5_document_cluster.json")
        docs_by_type = {"ads": [ad_document], "clusters": [cluster_document]}

        test.test_utils.initialize_elasticsearch_doc_types(
            docs_by_type, config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            self.assertEquals(len(result), 2)
            self.assertEquals(len(result[1].hits), 1)

        test.test_utils.reset_elasticsearch(config["components"][0])
Exemplo n.º 7
0
    def test_basic_coarse_executing_sparql_unnesting(self):
        config = load_json_file("5_config.json")
        queries = load_json_file("5_query.json")
        ad_document = load_json_file("5_document_ad.json")
        cluster_document = load_json_file("5_document_cluster.json")
        docs_by_type = {"ads": [ad_document],
                        "clusters": [cluster_document]}

        test.test_utils.initialize_elasticsearch_doc_types(docs_by_type,
                                                 config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            self.assertEquals(len(result), 2)
            self.assertEquals(len(result[1].hits), 1)

        test.test_utils.reset_elasticsearch(config["components"][0])
Exemplo n.º 8
0
    def test_basic_coarse_executing_compound_filters_no_type_mapping(self):
        config = load_json_file("3_config.json")
        queries = load_json_file("3_query.json")
        document = load_json_file("3_document.json")

        test.test_utils.initialize_elasticsearch([document],
                                                 config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            self.assertEquals(len(result.hits), 1)
            self.assertIn("fields", result.hits[0])
            self.assertIn("posting-date", result.hits[0]["fields"])
            self.assertEquals("2015-03-01T14:02:00",
                              result.hits[0]["fields"]["posting-date"]["strict"]["name"])

        test.test_utils.reset_elasticsearch(config["components"][0])
Exemplo n.º 9
0
    def test_basic_coarse_executing_aggregation(self):
        config = load_json_file("6_config.json")
        queries = load_json_file("6_query.json")
        document = load_json_file("6_document.json")

        test.test_utils.initialize_elasticsearch([document],
                                                 config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            result_dict = result.to_dict()
            self.assertEquals(len(result.hits), 1)
            self.assertIn("aggregations", result_dict)
            self.assertIn("?ethnicity", result_dict["aggregations"])
            self.assertEquals(1, len(result_dict["aggregations"]["?ethnicity"]["buckets"]))
            self.assertEquals(1, result_dict["aggregations"]["?ethnicity"]["buckets"][0]["doc_count"])

        test.test_utils.reset_elasticsearch(config["components"][0])   
Exemplo n.º 10
0
    def test_basic_coarse_executing_compound_filters_no_type_mapping(self):
        config = load_json_file("3_config.json")
        queries = load_json_file("3_query.json")
        document = load_json_file("3_document.json")

        test.test_utils.initialize_elasticsearch([document],
                                                 config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            self.assertEquals(len(result.hits), 1)
            self.assertIn("fields", result.hits[0])
            self.assertIn("posting-date", result.hits[0]["fields"])
            self.assertEquals(
                "2015-03-01T14:02:00",
                result.hits[0]["fields"]["posting-date"]["strict"]["name"])

        test.test_utils.reset_elasticsearch(config["components"][0])
Exemplo n.º 11
0
    def test_basic_coarse_executing_union_and_not_exists(self):
        config = load_json_file("7_config.json")
        queries = load_json_file("7_query.json")
        document = load_json_file("7_document.json")
        document2 = load_json_file("7_document_2.json")
        document3 = load_json_file("7_document_3.json")

        test.test_utils.initialize_elasticsearch(
            [document, document2, document3], config["components"][0])

        executor = Executor(config)

        for query in queries:
            result = executor.execute(query)
            result_dict = result.to_dict()
            self.assertEqual(len(result.hits), 1)
            self.assertEqual(
                "QPONMLKJIHGFEDCBA",
                result_dict["hits"]["hits"][0]["_source"]["doc_id"])

        test.test_utils.reset_elasticsearch(config["components"][0])
        executor.teardown()
Exemplo n.º 12
0
    def test_basic_coarse_order_by(self):
        config = load_json_file("9_config.json")
        queries = load_json_file("9_query.json")
        document = load_json_file("9_document.json")
        document2 = load_json_file("9_document_2.json")
        document3 = load_json_file("9_document_3.json")
        document4 = load_json_file("9_document_4.json")
        document5 = load_json_file("9_document_5.json")
        document6 = load_json_file("9_document_6.json")
        mapping = load_json_file("9_mapping.json")

        test.test_utils.initialize_elasticsearch(
            [document, document2, document3, document4, document5, document6],
            config["components"][0], mapping)

        executor = Executor(config)

        try:
            for query in queries:
                result = executor.execute(query)
                result_dict = result.to_dict()
                self.assertEqual(len(result.hits), 4)
                self.assertEqual(
                    "PQABCDEFGHIJKLMNO",
                    result_dict["hits"]["hits"][0]["_source"]["doc_id"])
                self.assertEqual(
                    "DEFGHIJKLMNOPQABCD",
                    result_dict["hits"]["hits"][1]["_source"]["doc_id"])
                self.assertEqual(
                    "GHIJKLMNOPQABCDEF",
                    result_dict["hits"]["hits"][2]["_source"]["doc_id"])
                self.assertEqual(
                    "ABCDEFGHIJKLMNOPQ",
                    result_dict["hits"]["hits"][3]["_source"]["doc_id"])
        finally:
            test.test_utils.reset_elasticsearch(config["components"][0])
            executor.teardown()