|
|
|
@ -8,7 +8,7 @@ from typing import Union, List, Dict
|
|
|
|
|
|
|
|
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
from datetime import datetime, timedelta
|
|
|
|
from science_article_cnki.models.enum_cls import (
|
|
|
|
from science_article_cnki.models.enum_cls import (
|
|
|
|
ResourceType, SourceDatabaseEnum,
|
|
|
|
ResourceType, SourceDatabaseEnum, ResourceLanguageEnum, KuaKuCodeEnum,
|
|
|
|
SearchTypeId, SearchFieldEnum, OperatorEnum, LogicEnum,
|
|
|
|
SearchTypeId, SearchFieldEnum, OperatorEnum, LogicEnum,
|
|
|
|
SingleResultEnum
|
|
|
|
SingleResultEnum
|
|
|
|
)
|
|
|
|
)
|
|
|
|
@ -436,6 +436,17 @@ def add_search_word(search_content: str, base_query: dict = None):
|
|
|
|
return words_query
|
|
|
|
return words_query
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def add_muti_filters(base_query: dict, filters: List[dict] = None):
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
对一个检索式批量添加多个筛选项
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
|
if not filters:
|
|
|
|
|
|
|
|
return base_query
|
|
|
|
|
|
|
|
for filter in filters:
|
|
|
|
|
|
|
|
add_muti_group(**filter, base_query=base_query)
|
|
|
|
|
|
|
|
return base_query
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def add_muti_group(
|
|
|
|
def add_muti_group(
|
|
|
|
project: Union[SingleResultEnum, str],
|
|
|
|
project: Union[SingleResultEnum, str],
|
|
|
|
value: Union[str, List[str]],
|
|
|
|
value: Union[str, List[str]],
|
|
|
|
@ -586,6 +597,7 @@ def temp_refine_search(
|
|
|
|
year: int = None,
|
|
|
|
year: int = None,
|
|
|
|
updated_date: str = None,
|
|
|
|
updated_date: str = None,
|
|
|
|
resource_type: str = '学术期刊',
|
|
|
|
resource_type: str = '学术期刊',
|
|
|
|
|
|
|
|
lang: Union[str, ResourceLanguageEnum] = ResourceLanguageEnum.中文,
|
|
|
|
**kwargs
|
|
|
|
**kwargs
|
|
|
|
):
|
|
|
|
):
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
@ -594,9 +606,12 @@ def temp_refine_search(
|
|
|
|
:param updated_date: 更新时间:不限、最近一周/一月/半年/一年、今年迄今、上一年度
|
|
|
|
:param updated_date: 更新时间:不限、最近一周/一月/半年/一年、今年迄今、上一年度
|
|
|
|
:param year: 指定筛选的年份,如果需要与updated_date参数同时使用,需要在限制更新时间后再筛选
|
|
|
|
:param year: 指定筛选的年份,如果需要与updated_date参数同时使用,需要在限制更新时间后再筛选
|
|
|
|
:param resource_type:
|
|
|
|
:param resource_type:
|
|
|
|
|
|
|
|
:param lang:
|
|
|
|
:param kwargs:
|
|
|
|
:param kwargs:
|
|
|
|
:return:
|
|
|
|
:return:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
if isinstance(lang, str):
|
|
|
|
|
|
|
|
lang = ResourceLanguageEnum[lang]
|
|
|
|
_query = {
|
|
|
|
_query = {
|
|
|
|
"Platform": "",
|
|
|
|
"Platform": "",
|
|
|
|
"Resource": ResourceType[resource_type].value,
|
|
|
|
"Resource": ResourceType[resource_type].value,
|
|
|
|
@ -614,8 +629,8 @@ def temp_refine_search(
|
|
|
|
},
|
|
|
|
},
|
|
|
|
"ExScope": "1",
|
|
|
|
"ExScope": "1",
|
|
|
|
"SearchType": 1,
|
|
|
|
"SearchType": 1,
|
|
|
|
"Rlang": "CHINESE",
|
|
|
|
"Rlang": lang.value,
|
|
|
|
"KuaKuCode": "",
|
|
|
|
"KuaKuCode": KuaKuCodeEnum[resource_type].value,
|
|
|
|
"Expands": {},
|
|
|
|
"Expands": {},
|
|
|
|
"View": "changeDBOnlyFT",
|
|
|
|
"View": "changeDBOnlyFT",
|
|
|
|
"SearchFrom": 1
|
|
|
|
"SearchFrom": 1
|
|
|
|
@ -644,6 +659,16 @@ def temp_query_search(query_body, query: str = None, page: int = 1, page_size: i
|
|
|
|
:param updated_date: 默认不限
|
|
|
|
:param updated_date: 默认不限
|
|
|
|
:return:
|
|
|
|
:return:
|
|
|
|
"""
|
|
|
|
"""
|
|
|
|
|
|
|
|
def getFromString():
|
|
|
|
|
|
|
|
rr = kwargs.get('resource_type', "总库")
|
|
|
|
|
|
|
|
d = ""
|
|
|
|
|
|
|
|
d += f"资源范围:{rr}; "
|
|
|
|
|
|
|
|
time_range = '更新时间:%(updated_date)s' % {"updated_date": updated_date}
|
|
|
|
|
|
|
|
d += f'时间范围:{time_range}; '
|
|
|
|
|
|
|
|
if rr == '学术期刊':
|
|
|
|
|
|
|
|
d += '来源类别:全部期刊'
|
|
|
|
|
|
|
|
d += '; '
|
|
|
|
|
|
|
|
return d
|
|
|
|
page = str(page)
|
|
|
|
page = str(page)
|
|
|
|
page_size = str(page_size)
|
|
|
|
page_size = str(page_size)
|
|
|
|
if page == '1':
|
|
|
|
if page == '1':
|
|
|
|
@ -658,8 +683,7 @@ def temp_query_search(query_body, query: str = None, page: int = 1, page_size: i
|
|
|
|
"dstyle": "listmode",
|
|
|
|
"dstyle": "listmode",
|
|
|
|
"boolSortSearch": "false",
|
|
|
|
"boolSortSearch": "false",
|
|
|
|
"aside": aside,
|
|
|
|
"aside": aside,
|
|
|
|
"searchFrom": "资源范围:学术期刊; 仅看有全文,中英文扩展; 时间范围:更新时间:%(updated_date)s; 来源类别:全部期刊; " % {
|
|
|
|
"searchFrom": getFromString(),
|
|
|
|
"updated_date": updated_date},
|
|
|
|
|
|
|
|
"subject": "",
|
|
|
|
"subject": "",
|
|
|
|
"language": "",
|
|
|
|
"language": "",
|
|
|
|
"uniplatform": "",
|
|
|
|
"uniplatform": "",
|
|
|
|
|