def test_author_colon_with_double_quotes(): query = IQ('author:"tachikawa, yuji"', LiteratureSearch()) expected = { "bool": { "must": [ { "bool": { "should": [ { "match": { "authors.name_variations": "tachikawa, yuji" } }, { "term": { "authors.inspire_bai": "tachikawa, yuji" } } ] } } ], "should": [ { "match": { "authors.full_name": "tachikawa, yuji" } } ] } } result = query.to_dict() assert expected == result
def test_find_author_uppercase(): query = IQ('FIND A W F CHANG', LiteratureSearch()) expected = { "bool": { "must": [ { "bool": { "should": [ { "match": { "authors.name_variations": "W F CHANG" } }, { "term": { "authors.inspire_bai": "W F CHANG" } } ] } } ], "should": [ { "match": { "authors.full_name": "W F CHANG" } } ] } } result = query.to_dict() assert expected == result
def test_find_exactauthor_not_affiliation_uppercase(): query = IQ( 'FIND EA RINALDI, MASSIMILIANO NOT AFF SINCROTRONE TRIESTE', LiteratureSearch()) expected = { "bool": { "must_not": [ { "multi_match": { "query": "SINCROTRONE TRIESTE", "fields": [ "authors.affiliations.value", "corporate_author" ] } } ], "must": [ { "multi_match": { "query": "RINALDI, MASSIMILIANO", "fields": [ "exactauthor.raw", "authors.full_name", "authors.alternative_names", "authors.inspire_bai" ] } } ] } } result = query.to_dict() assert expected == result
def test_google_style_and_not_collaboration(): query = IQ("raffaele d'agnolo and not cn cms", LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_journal_colon(): query = IQ('journal:TODO', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_type_code_colon(): query = IQ('tc: l', LiteratureSearch()) expected = {'multi_match': {'query': 'l', 'fields': ['collection']}} result = query.to_dict() assert expected == result
def test_exactauthor_colon(): query = IQ('ea:matt visser', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_field_code_colon(): query = IQ('fc: a', LiteratureSearch()) expected = {'multi_match': {'query': 'a', 'fields': ['field_code']}} result = query.to_dict() assert expected == result
def test_find_date(): query = IQ('fin date > today', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_citedby_colon_recid_colon(): query = IQ('citedby:recid:902780', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_find_caption(): query = IQ('Diagram for the fermion flow violating process', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_find_country_code(): query = IQ('find cc italy', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_author_bai_malformed(): query = IQ('a r.j.hill.1', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_author(): query = IQ('a kondrashuk', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_author_colon_bai(): query = IQ('author:Y.Nomura.1', LiteratureSearch()) expected = { 'bool': { 'must': [ { 'bool': { 'should': [ { 'match': { u'authors.name_variations': 'Y.Nomura.1' } }, { 'term': { u'authors.ids.value': 'Y.Nomura.1' } } ] } } ], 'should': [ { 'match': { u'authors.full_name': 'Y.Nomura.1' } } ] } } result = query.to_dict() assert expected == result
def test_author_bai(): query = IQ('find a r.j.hill.1', LiteratureSearch()) expected = { "bool": { "must": [ { "bool": { "should": [ { "match": { "authors.name_variations": "r.j.hill.1" } }, { "term": { "authors.ids.value": "r.j.hill.1" } } ] } } ], "should": [ { "match": { "authors.full_name": "r.j.hill.1" } } ] } } result = query.to_dict() assert expected == result
def test_find_report(): query = IQ('find r atlas-conf-*', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_citedby_colon(): query = IQ('citedby:foobar', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_find_type_code(): query = IQ('find tc book', LiteratureSearch()) expected = {'multi_match': {'query': 'book', 'fields': ['collection']}} result = query.to_dict() assert expected == result
def test_eprint_colon_without_arxiv(): query = IQ('eprint:TODO', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_author_or_author(): query = IQ('a fileviez perez,p or p. f. perez', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_exactauthor_colon_and_collection_colon(): query = IQ('ea: matt visser AND collection:citeable', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_author_and_not_author(): query = IQ('a espinosa,jose r and not a rodriguez espinosa', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_fulltext_colon(): query = IQ('fulltext:TODO', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_author_and_not_type_code(): query = IQ('a nilles,h and not tc I', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_topcite_colon(): query = IQ('topcite:200+', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_exactauthor(): query = IQ('ea wu, xing gang') expected = {} result = query.to_dict() assert expected == result
def test_google_style_or_google_style(): query = IQ('sungtae cho or 1301.7261', LiteratureSearch()) expected = {} result = query.to_dict() assert expected == result
def test_find_author(): query = IQ('find a polchinski', LiteratureSearch()) expected = { "bool": { "must": [ { "bool": { "should": [ { "match": { "authors.name_variations": "polchinski" } }, { "term": { "authors.inspire_bai": "polchinski" } } ] } } ], "should": [ { "match": { "authors.full_name": "polchinski" } } ] } } result = query.to_dict() assert expected == result
def test_author_colon_bai(): query = IQ('author:Y.Nomura.1', LiteratureSearch()) expected = { "bool": { "should": [ { "match": { "authors.name_variations": "Y.Nomura.1" } }, { "match": { "authors.full_name": "Y.Nomura.1" } }, { "match": { "authors.inspire_bai": "Y.Nomura.1" } } ] } } result = query.to_dict() assert expected == result
def test_author_colon_or_author_colon_or_title_colon_or_title_colon(): query = IQ( "(author:'Hiroshi Okada' OR (author:'H Okada' hep-ph) OR " "title: 'Dark matter in supersymmetric U(1(B-L) model' OR " "title: 'Non-Abelian discrete symmetry for flavors')", LiteratureSearch()) expected = { 'bool': { 'should': [{ 'bool': { 'should': [{ 'bool': { 'should': [{ 'bool': { 'must': [{ 'multi_match': { 'query': 'H Okada', 'type': 'phrase', 'fields': [ 'authors.full_name', 'authors.alternative_names' ] } }, { 'multi_match': { 'query': 'hep-ph', 'fields': ['global_fulltext'] } }] } }, { 'multi_match': { 'query': 'Hiroshi Okada', 'type': 'phrase', 'fields': [ 'authors.full_name', 'authors.alternative_names' ], } }] } }, { 'multi_match': { 'query': 'Dark matter in supersymmetric U(1(B-L) model', 'type': 'phrase', 'fields': [ 'titles.title', 'titles.title.raw^2', 'title_translation.title', 'title_variation', 'title_translation.subtitle', 'titles.subtitle' ] } }] } }, { 'multi_match': { 'query': 'Non-Abelian discrete symmetry for flavors', 'type': 'phrase', 'fields': [ 'titles.title', 'titles.title.raw^2', 'title_translation.title', 'title_variation', 'title_translation.subtitle', 'titles.subtitle' ], } }] } } result = query.to_dict() assert expected == result
def test_find_author_not_author_not_author(): query = IQ('f a ostapchenko not olinto not haungs', LiteratureSearch()) expected = { "bool": { "minimum_should_match": 0, "must": [{ "bool": { "should": [{ "match": { "authors.name_variations": "ostapchenko" } }, { "term": { "authors.inspire_bai": "ostapchenko" } }] } }], "must_not": [{ "bool": { "should": [{ "match": { "authors.full_name": "olinto" } }], "must": [{ "bool": { "should": [{ "match": { "authors.name_variations": "olinto" } }, { "term": { "authors.inspire_bai": "olinto" } }] } }] } }, { "bool": { "must": [{ "bool": { "should": [{ "match": { "authors.name_variations": "haungs" } }, { "term": { "authors.inspire_bai": "haungs" } }] } }], "should": [{ "match": { "authors.full_name": "haungs" } }] } }], "should": [{ "match": { "authors.full_name": "ostapchenko" } }] } } result = query.to_dict() assert expected == result
def test_find_author_and_date(): query = IQ('find a hatta and date after 2000', LiteratureSearch()) expected = { "bool": { "minimum_should_match": 0, "should": [{ "match": { "authors.full_name": "hatta" } }], "must": [{ "bool": { "should": [{ "match": { "authors.name_variations": "hatta" } }, { "term": { "authors.ids.value": "hatta" } }] } }, { "bool": { "minimum_should_match": 1, "should": [{ "bool": { "should": [{ "bool": { "should": [{ "range": { "imprints.date": { "gt": "2000" } } }, { "range": { "preprint_date": { "gt": "2000" } } }] } }, { "range": { "thesis.date": { "gt": "2000" } } }] } }, { "range": { "publication_info.year": { "gt": "2000" } } }] } }] } } result = query.to_dict() assert expected == result