From 9f1beaa49f7d084817592019eedf8a300a50c861 Mon Sep 17 00:00:00 2001 From: yindaheng98 Date: Tue, 14 May 2024 18:08:40 -0700 Subject: [PATCH] 2 sem search --- citation_rabbot/__main__.py | 4 +++- citation_rabbot/jumps/__init__.py | 2 +- citation_rabbot/jumps/search.py | 32 ++++++++++++++++++++++++++----- setup.py | 2 +- 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/citation_rabbot/__main__.py b/citation_rabbot/__main__.py index c5fc3e9..3b3fd25 100644 --- a/citation_rabbot/__main__.py +++ b/citation_rabbot/__main__.py @@ -7,7 +7,9 @@ from .start import start_args2querys, gen_start_results2message from .jumps import * default_jumps_name = [ - "author_papers_jump", "citations_jump", "references_jump", "search_by_title_jump", "search_by_abstract_jump", "paper_detail_jump", + "author_papers_jump", "citations_jump", "references_jump", + "search_by_title_jump", "search_by_title_semantic_jump", "search_by_abstract_semantic_jump", + "paper_detail_jump", "add_favorite_paper_jump", "show_favorite_paper_jump", "rm_favorite_paper_jump", "add_favorite_keywords_jump", "show_favorite_keywords_jump", "rm_favorite_keywords_jump" ] diff --git a/citation_rabbot/jumps/__init__.py b/citation_rabbot/jumps/__init__.py index 6c2de1a..1a56667 100644 --- a/citation_rabbot/jumps/__init__.py +++ b/citation_rabbot/jumps/__init__.py @@ -1,5 +1,5 @@ from .papers import author_papers_jump, citations_jump, references_jump -from .search import search_by_title_jump, search_by_abstract_jump +from .search import search_by_title_jump, search_by_title_semantic_jump, search_by_abstract_semantic_jump from .detail import paper_detail_jump from .favorites import add_favorite_paper_jump, show_favorite_paper_jump, rm_favorite_paper_jump from .favorites import add_favorite_keywords_jump, show_favorite_keywords_jump, rm_favorite_keywords_jump diff --git a/citation_rabbot/jumps/search.py b/citation_rabbot/jumps/search.py index 6a9d33a..344a492 100644 --- a/citation_rabbot/jumps/search.py +++ b/citation_rabbot/jumps/search.py @@ -25,7 +25,29 @@ def search_by_title_args2querys(args: object) -> List[Tuple[str, Dict]]: ) -def search_by_abstract_args2querys(args: object) -> List[Tuple[str, Dict]]: +def search_by_title_semantic_args2querys(args: object) -> List[Tuple[str, Dict]]: + lucene, pwhere, jwhere, orderby, limits, values = parse_args_papers_fulltext_index(args) + return [( + f"CALL db.index.fulltext.queryNodes('publication_title_fulltext_index', '{lucene}') YIELD node WITH node AS p " + + f"MATCH (p:Publication) WHERE {pwhere} " + + ("OPTIONAL MATCH (p:Publication)-[:PUBLISH]->(j:Journal) " if jwhere == '' else f"MATCH (p:Publication)-[:PUBLISH]->(j:Journal) WHERE {jwhere} ") + + f"OPTIONAL MATCH (c:Publication)-[:CITE]->(p:Publication) " + f"OPTIONAL MATCH (r:Publication)<-[:CITE]-(p:Publication) " + f"RETURN p, j, COUNT(DISTINCT c) AS citation, COUNT(DISTINCT r) AS reference ORDER BY {orderby} LIMIT {limits}", + values + )] + + +search_by_title_semantic_jump = Jump( + name="search_by_title_semantic", + parser_add_arguments=add_arguments_papers, + args2querys=search_by_title_semantic_args2querys, + results2message=papers_results2message, + description="Search papers by keywords in title semantically" +) + + +def search_by_abstract_semantic_args2querys(args: object) -> List[Tuple[str, Dict]]: lucene, pwhere, jwhere, orderby, limits, values = parse_args_papers_fulltext_index(args) return [( f"CALL db.index.fulltext.queryNodes('publication_abstract_fulltext_index', '{lucene}') YIELD node WITH node AS p " + @@ -38,10 +60,10 @@ def search_by_abstract_args2querys(args: object) -> List[Tuple[str, Dict]]: )] -search_by_abstract_jump = Jump( - name="search_by_abstract", +search_by_abstract_semantic_jump = Jump( + name="search_by_abstract_semantic", parser_add_arguments=add_arguments_papers, - args2querys=search_by_abstract_args2querys, + args2querys=search_by_abstract_semantic_args2querys, results2message=papers_results2message, - description="Search papers by keywords in abstract" + description="Search papers by keywords in abstract semantically" ) diff --git a/setup.py b/setup.py index 68b97ca..6fd57c9 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ setup( name='citation-rabbot', - version='3.19', + version='3.19.1', author='yindaheng98', author_email='yindaheng98@gmail.com', url='https://github.com/yindaheng98/citation-rabbot',