def add_search_string(self: Any, search_string: str) -> Any:
     self.query["dis_max"]["queries"].append(
         query_utils.title_exact_match_query(fields=title_fields(
             [IndicesKey.CONCEPTS]),
                                             search_string=search_string))
     self.query["dis_max"]["queries"].append(
         query_utils.title_query(
             fields=title_fields([IndicesKey.CONCEPTS]),
             search_string=search_string,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.organization_and_keyword_query(search_string))
     self.query["dis_max"]["queries"].append(
         query_utils.description_query(
             fields=description_fields([IndicesKey.CONCEPTS]),
             search_string=search_string,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.simple_query_string(
             fields=fulltext_fields([IndicesKey.CONCEPTS]),
             search_string=search_string,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.query_string(
             fields=fulltext_fields([IndicesKey.CONCEPTS]),
             search_string=search_string,
         ))
 def add_search_string(self: Any, param: str) -> Any:
     self.query["dis_max"]["queries"].append(
         query_utils.title_exact_match_query(
             fields=title_fields(
                 [IndicesKey.EVENTS, IndicesKey.PUBLIC_SERVICES]),
             search_string=param,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.title_query(
             fields=title_fields(
                 [IndicesKey.EVENTS, IndicesKey.PUBLIC_SERVICES]),
             search_string=param,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.organization_and_keyword_query(param))
     self.query["dis_max"]["queries"].append(
         query_utils.description_query(
             fields=description_fields(
                 [IndicesKey.EVENTS, IndicesKey.PUBLIC_SERVICES]),
             search_string=param,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.simple_query_string(
             fields=fulltext_fields(
                 [IndicesKey.EVENTS, IndicesKey.PUBLIC_SERVICES]),
             search_string=param,
         ))
     self.query["dis_max"]["queries"].append(
         query_utils.query_string(
             fields=fulltext_fields(
                 [IndicesKey.EVENTS, IndicesKey.PUBLIC_SERVICES]),
             search_string=param,
         ))
def test_simple_query_string_query_special_chars():
    expected = {
        "bool": {
            "must": {
                "simple_query_string": {
                    "query": "åpne+data åpne+data*"
                }
            },
            "should": [
                {
                    "match": {
                        "provenance.code": "NASJONAL"
                    }
                },
                {
                    "term": {
                        "nationalComponent": "true"
                    }
                },
                {
                    "bool": {
                        "must": [
                            {
                                "term": {
                                    "accessRights.code.keyword": "PUBLIC"
                                }
                            },
                            {
                                "term": {
                                    "distribution.openLicense": "true"
                                }
                            },
                        ]
                    }
                },
            ],
            "boost":
            0.02,
        }
    }
    result = simple_query_string(search_string="åpne - !! (data)")
    assert json.dumps(result) == json.dumps(expected)