def _fuzzy_custom_query(issn, titles): """ Este metodo constroi a lista de filtros por título de periódico que será aplicada na pesquisa boleana como match por similaridade "should". A lista de filtros é coletada do template de pesquisa customizada do periódico, quanto este template existir. """ custom_queries = journal_titles.load(issn).get('should', []) titles = [{'title': i} for i in titles if i not in [x['title'] for x in custom_queries]] titles.extend(custom_queries) for item in titles: if len(item['title'].strip()) == 0: continue query = { "fuzzy": { "reference_source_cleaned": { "value": utils.cleanup_string(item['title']), "fuzziness": item.get('fuzziness', 3), "max_expansions": 50 } } } yield query
def bibliometrics_journal_cited_and_citing_years_heat_web(request): data = request.data_manager data['page'] = 'bibliometrics' titles = request.GET.get('titles', None) citing_year = request.GET.get('citing_year', None) cited_year = request.GET.get('cited_year', None) titles = titles.split('||') if titles else [] if data['selected_journal_code']: journal = request.stats.articlemeta.journal(code=data['selected_journal_code']) titles.append(journal.title) titles.append(journal.abbreviated_title) titles.extend(x['title'] for x in journal_titles.load(data['selected_journal_code']).get('should', []) if x['title'] not in titles) data['blist'] = {} data['titles'] = [] if titles and not len(titles) == 0: forms = set([i.strip() for i in titles if i]) data['titles'] = u'||'.join(forms) data['citing_list'] = [] if citing_year and cited_year: citing_list = request.stats.bibliometrics.cited_and_citing_years_document_list( data['selected_journal_code'], titles, citing_year=citing_year, cited_year=cited_year ) data['citing_list'] = citing_list.get('citing_list', 0) return data
def index(request): data = request.data_manager data['page'] = 'home' data['h5m5'] = request.stats.bibliometrics.google_h5m5( data['selected_journal_code']) titles = request.GET.get('titles', None) titles = titles.split('||') if titles else [] if data['selected_journal_code']: journal = request.stats.articlemeta.journal( code=data['selected_journal_code']) titles.append(journal.title) titles.append(journal.abbreviated_title) titles.extend(x['title'] for x in journal_titles.load( data['selected_journal_code']).get('should', []) if x['title'] not in titles) data['titles'] = [] if titles and not len(titles) == 0: forms = set([i.strip() for i in titles if i]) data['titles'] = u'||'.join(forms) return data
def bibliometrics_list_received(request): data = request.data_manager data['page'] = 'bibliometrics' titles = request.GET.get('titles', None) titles = titles.split('||') if titles else [] if data['selected_journal_code']: journal = request.stats.articlemeta.journal( code=data['selected_journal_code']) titles.append(journal.title) titles.append(journal.abbreviated_title) titles.extend(x['title'] for x in journal_titles.load( data['selected_journal_code']).get('should', []) if x['title'] not in titles) data['blist'] = [] data['titles'] = [] if titles and not len(titles) == 0: forms = set([i.strip() for i in titles if i]) data['blist'] = request.stats.bibliometrics.received_citations( data['selected_journal_code'], forms, py_range=data['py_range']) data['titles'] = u'||'.join(forms) return data
def bibliometrics_journal_received_self_and_granted_citation_chart(request): data = request.data_manager titles = request.GET.get('titles', None) titles = titles.split('||') if titles else [] if data['selected_journal_code']: journal = request.stats.articlemeta.journal(code=data['selected_journal_code']) titles.append(journal.title) titles.append(journal.abbreviated_title) titles.extend(x['title'] for x in journal_titles.load(data['selected_journal_code']).get('should', []) if x['title'] not in titles) data = request.stats.received_self_and_granted_citation_chart(data['selected_journal_code'], data['selected_collection_code'], titles, py_range=data['py_range']) return request.chartsconfig.bibliometrics_journal_received_self_and_granted_citation_chart(data)
def bibliometrics_journal_impact_factor_chart(request): data = request.data_manager titles = request.GET.get('titles', None) titles = titles.split('||') if titles else [] if data['selected_journal_code']: journal = request.stats.articlemeta.journal(code=data['selected_journal_code']) titles.append(journal.title) titles.append(journal.abbreviated_title) titles.extend(x['title'] for x in journal_titles.load(data['selected_journal_code']).get('should', []) if x['title'] not in titles) data = request.stats.impact_factor_chart(data['selected_journal_code'], data['selected_collection_code'], titles, py_range=data['py_range']) return request.chartsconfig.bibliometrics_impact_factor(data)
def bibliometrics_journal_cited_and_citing_years_heat(request): data = request.data_manager titles = request.GET.get('titles', None) titles = titles.split('||') if titles else [] if data['selected_journal_code']: journal = request.stats.articlemeta.journal(code=data['selected_journal_code']) titles.append(journal.title) titles.append(journal.abbreviated_title) titles.extend(x['title'] for x in journal_titles.load(data['selected_journal_code']).get('should', []) if x['title'] not in titles) data = request.stats.bibliometrics.cited_and_citing_years_heat( data['selected_journal_code'], titles ) return request.chartsconfig.bibliometrics_cited_and_citing_years_heat(data)
def _must_not_custom_query(issn): """ Este metodo constroi a lista de filtros por título de periódico que será aplicada na pesquisa boleana como restrição "must_not". A lista de filtros é coletada do template de pesquisa customizada do periódico, quanto este template existir. """ custom_queries = set([utils.cleanup_string(i) for i in journal_titles.load(issn).get('must_not', [])]) for item in custom_queries: query = { "match": { "reference_source_cleaned": item } } yield query
def has_optmized_journal_queries(self, issn): if journal_titles.load(issn): return True return False