Skip to content

Commit

Permalink
Merge pull request #134 from MJedr/range-date-queries
Browse files Browse the repository at this point in the history
visitor: support range queries in publication_info.year
  • Loading branch information
MJedr committed May 26, 2020
2 parents 51ccca1 + 95ebbdb commit 1795ade
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 9 deletions.
4 changes: 2 additions & 2 deletions inspire_query_parser/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@
'vol': 'volume',

# Journal year
'journal-year': 'journal-year',
'jy': 'journal-year',
'journal-year': 'publication_info.year',
'jy': 'publication_info.year',

# Keyword
# keyword is Invenio style, while the rest are from SPIRES syntax.
Expand Down
14 changes: 7 additions & 7 deletions inspire_query_parser/visitors/elastic_search_visitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -513,14 +513,14 @@ def _generate_range_queries(self, fieldnames, operator_value_pairs):
if fieldname in self.DATE_NESTED_FIELDS
else range_query
)
elif 'publication_info.year' in fieldnames:
range_queries = [generate_nested_query(self.DATE_NESTED_QUERY_PATH,
{'range': {fieldname: operator_value_pairs}})
for fieldname in fieldnames]

else:
range_queries = [{
'range': {
fieldname: operator_value_pairs
}
}
for fieldname in fieldnames
]
range_queries = [{'range': {fieldname: operator_value_pairs}}
for fieldname in fieldnames]

return wrap_queries_in_bool_clauses_if_more_than_one(range_queries, use_must_clause=False)

Expand Down
20 changes: 20 additions & 0 deletions tests/test_elastic_search_visitor.py
Original file line number Diff line number Diff line change
Expand Up @@ -3409,3 +3409,23 @@ def test_exact_match_query_for_names():

generated_es_query = _parse_query(query_str)
assert generated_es_query == expected_es_query


def test_range_date_queries_are_nested():
query_str = 'jy:2015->2018'
expected_es_query = {
"nested": {
"path": "publication_info",
"query": {
"range": {
"publication_info.year": {
"gte": "2015",
"lte": "2018"
}
}
}
}
}

generated_es_query = _parse_query(query_str)
assert generated_es_query == expected_es_query

0 comments on commit 1795ade

Please sign in to comment.