Exemplo n.º 1
0
def test_search_bool_term():
    concepts = []
    bool_term = {}
    bool_term[TERM_FIELD] = TERM_VALUE
    search_concept = wh.SearchableConcept(cui=CUI, ontology=ONTOLOGY, rank='10',
                                          semanticType=SEMTYPE)
    concepts.append(search_concept)
    date_range = wh.Range(begin=RANGE_BEGIN, end=RANGE_END)
    range_map = {}
    range_map[RANGE_FIELD] = date_range
    query = wh.Query(concepts=concepts, date_range=range_map, boolTerm=bool_term)
    documents = wh.Documents("10", "0")
    returns = wh.ReturnsModel(documents)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
Exemplo n.º 2
0
def test_search_keyword():
    phrase = 'COPD AND (smoker OR smoking)'
    operands = []
    copd_operand = {}
    copd_operand['ontology'] = 'text'
    copd_operand['operandName'] = 'COPD'
    copd_operand['text'] = 'COPD'
    operands.append(copd_operand)
    smoker_operand = {}
    smoker_operand['ontology'] = 'text'
    smoker_operand['operandName'] = 'smoker'
    smoker_operand['text'] = 'smoker'
    operands.append(smoker_operand)
    smoking_operand = {}
    smoking_operand['ontology'] = 'text'
    smoking_operand['operandName'] = 'smoking'
    smoking_operand['text'] = 'smoking'
    operands.append(smoking_operand)
    query = wh.Query(boolExpression=phrase, concepts=operands)
    documents = wh.Documents("10", "0")
    returns = wh.ReturnsModel(documents)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
Exemplo n.º 3
0
def test_search_multiple_concepts():
    concepts = []
    search_concept1 = wh.SearchableConcept(cui=CUI, ontology=ONTOLOGY, rank='10',
                                           semanticType=SEMTYPE)
    concepts.append(search_concept1)
    search_concept2 = wh.SearchableConcept(cui=SECOND_CUI, ontology=ONTOLOGY, rank='10',
                                           semanticType=SECOND_SEMTYPE)
    concepts.append(search_concept2)
    query = wh.Query(concepts=concepts)
    documents = wh.Documents("10", "0")
    returns = wh.ReturnsModel(documents)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
Exemplo n.º 4
0
def test_search_returns_passages():
    concepts = []
    search_concept = wh.SearchableConcept(cui=CUI, ontology=ONTOLOGY, rank='10',
                                          semanticType=SEMTYPE)
    concepts.append(search_concept)
    query = wh.Query(concepts=concepts)
    documents = wh.Documents("10", "0")
    matches = [search_concept]
    passages = wh.Passages(concepts_to_highlight=matches, limit=3, search_tag_begin='<search_span>',
                           search_tag_end='</search_span>', related_tag_begin='<related_span>',
                           related_tag_end='</related_tag_end>', min_score='0.1')
    returns = wh.ReturnsModel(documents, passages=passages)
Exemplo n.º 5
0
def test_search_sorted_results():
    concepts = []
    search_concept = wh.SearchableConcept(cui=CUI, ontology=ONTOLOGY, rank='10',
                                          semanticType=SEMTYPE)
    concepts.append(search_concept)
    query = wh.Query(concepts=concepts)
    metadata = []
    metadata.append("abstract")
    metadata.append(SORT_FIELD)
    sort_entries = []
    order = wh.Order('ASC')
    sort = wh.SortEntry(SORT_FIELD, order)
    sort_entries.append(sort)
    documents = wh.Documents("10", "0", metadata, None, sort=sort_entries)
    returns = wh.ReturnsModel(documents)
Exemplo n.º 6
0
def test_search_bool_regexp():
    bool_regexp = {}
    bool_regexp['title'] = BOOLEAN_REGEX
    query = wh.Query(boolRegexp=bool_regexp)
    documents = wh.Documents("10", "0")
    returns = wh.ReturnsModel(documents)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
Exemplo n.º 7
0
def test_search_boolean_phrase():
    concepts = []
    phrase = BOOL_PHRASE
    query = wh.Query(boolExpression=phrase, concepts=concepts)
    documents = wh.Documents("10", "0")
    returns = wh.ReturnsModel(documents)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
Exemplo n.º 8
0
def test_search_regexp():
    regexps = []
    regexp = {}
    regexp[REGEX_FIELD] = REGEX
    regexps.append(regexp)
    query = wh.Query(regexp=regexps)
    documents = wh.Documents("10", "0")
    returns = wh.ReturnsModel(documents)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
Exemplo n.º 9
0
def test_returns_date_histogram():
    concepts = []
    search_concept = wh.SearchableConcept(cui=CUI, ontology=ONTOLOGY, rank='10',
                                          semanticType=SEMTYPE)
    concepts.append(search_concept)
    query = wh.Query(concepts=concepts)
    date_histogram = wh.DateHistograms(interval='1y')
    metadata = []
    metadata.append("abstract")
    metadata.append(RANGE_FIELD)
    histogram_map = {}
    histogram_map[RANGE_FIELD] = date_histogram
    documents = wh.Documents(limit="10", offset="0", metadata=metadata)
    returns = wh.ReturnsModel(documents, None, None, None, None, None, None, None, histogram_map)
    response = IML_TEST.search(corpus=CORPUS, query=query, returns=returns)
    search_model = wh.SearchModel._from_dict(response.get_result())
    result_documents = search_model.documents
    for ranked_doc in result_documents:
        assert ranked_doc.document_id is not None
        assert ranked_doc.metadata is not None
        for key in ranked_doc.metadata:
            assert key is not None
            assert ranked_doc.metadata[key] is not None
        assert ranked_doc.corpus == CORPUS
        assert ranked_doc.links is not None
        doc_links = ranked_doc.links
        assert doc_links.href_search_matches is not None
        assert doc_links.href_categories is not None
    result_histograms = search_model.date_histograms
    for histogram_key in result_histograms:
        years_and_hits = result_histograms[histogram_key]
        for year in years_and_hits:
            year_date = wh.YearAndHits()
            year_and_hits = year_date._from_dict(year)
            assert year_and_hits.date is not None
            assert year_and_hits.hits > -1