Пример #1
0
    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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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)
Пример #6
0
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)
Пример #7
0
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)
Пример #8
0
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)
Пример #9
0
    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
Пример #10
0
    def has_optmized_journal_queries(self, issn):

        if journal_titles.load(issn):
            return True

        return False