about summary refs log tree commit diff
diff options
context:
space:
mode:
authorzsloan2024-06-26 22:24:53 +0000
committerAlexander_Kabui2024-08-28 15:02:45 +0300
commitf60ee46a1adffceda078ba72ca4b1562f1d477fc (patch)
tree5894d1228098431d99177979784e73a515ac9d80
parentb6660b2edb8967b6c78bcf810efc06d59aa486ee (diff)
downloadgenenetwork2-f60ee46a1adffceda078ba72ca4b1562f1d477fc.tar.gz
Automatically decide whether to use Xapian or SQL (uses Xapian if possible) + remove separate search button
Change logic so that SQL is used for non-term Publish searches, since searches for phenotype trait IDs currently don't work in Xapian
-rw-r--r--gn2/wqflask/search_results.py7
-rw-r--r--gn2/wqflask/static/new/javascript/dataset_select_menu_orig.js5
-rwxr-xr-xgn2/wqflask/templates/index_page.html4
3 files changed, 4 insertions, 12 deletions
diff --git a/gn2/wqflask/search_results.py b/gn2/wqflask/search_results.py
index b269b031..057ee1ff 100644
--- a/gn2/wqflask/search_results.py
+++ b/gn2/wqflask/search_results.py
@@ -43,7 +43,7 @@ class SearchResultPage:
 
         self.uc_id = uuid.uuid4()
         self.go_term = None
-        self.search_type = kw['search_type']
+        self.search_type = "sql" # Assume it's an SQL search by default, since all searches will work with SQL
 
         if kw['search_terms_or']:
             self.and_or = "or"
@@ -90,7 +90,7 @@ class SearchResultPage:
             else:
                 self.gen_search_result()
 
-    def gen_search_result(self, search_type="sql"):
+    def gen_search_result(self):
         """
         Get the info displayed in the search result table from the set of results computed in
         the "search" function
@@ -279,7 +279,8 @@ class SearchResultPage:
         # Set of terms compatible with Xapian currently (None is a search without a term)
         xapian_terms = ["POSITION", "MEAN", "LRS", "LOD"]
 
-        if self.search_type == "xapian" and all([(the_term['key'] in xapian_terms) or not the_term['key'] for the_term in self.search_terms]):
+        if all([(the_term['key'] in xapian_terms) or (not the_term['key'] and self.dataset.type != "Publish") for the_term in self.search_terms]):
+            self.search_type = "xapian"
             self.results = requests.get(generate_xapian_request(self.dataset, self.search_terms, self.and_or)).json()
         else:
             self.search_type = "sql"
diff --git a/gn2/wqflask/static/new/javascript/dataset_select_menu_orig.js b/gn2/wqflask/static/new/javascript/dataset_select_menu_orig.js
index 4310c4a8..2875eabd 100644
--- a/gn2/wqflask/static/new/javascript/dataset_select_menu_orig.js
+++ b/gn2/wqflask/static/new/javascript/dataset_select_menu_orig.js
@@ -329,8 +329,3 @@ $("#make_default").click(make_default);
 $("#btsearch").click(function() {
   $("#searchform").prop("action", "/search")
 });
-
-$("#xapianSearch").click(function() {
-  $("input[name='search_type']").val("xapian")
-  $("#searchform").prop("action", "/search")
-});
diff --git a/gn2/wqflask/templates/index_page.html b/gn2/wqflask/templates/index_page.html
index 84d441f2..f0840425 100755
--- a/gn2/wqflask/templates/index_page.html
+++ b/gn2/wqflask/templates/index_page.html
@@ -111,7 +111,6 @@
                     </div>
                     <form method="get" action="/search" target="_blank" id="searchform" name="SEARCHFORM",
 			  data-gn_server_url="{{gn_server_url}}">
-                        <input name="search_type" type="hidden" value="sql">
                         <fieldset>
                             <div style="padding-left: 20px; padding-right: 20px;" class="form-horizontal">
 
@@ -199,9 +198,6 @@
                                         <div class="col-2 controls">
                                             <button id="btsearch" class="btn btn-primary form-control"><span class="glyphicon glyphicon-search"></span> Search</button>
                                         </div>
-                                        <div class="col-2 controls" style="padding-left: 20px;">
-                                            <button id="xapianSearch" class="btn btn-primary form-control"><span class="glyphicon glyphicon-search"></span> Xapian Search</button>
-                                        </div>
                                         <div class="col-2 align-self-end controls" style="padding-left: 20px;">
                                             <button type="button" id="make_default" class="btn form-control info-button"><span class="glyphicon glyphicon-pushpin"></span> Lock Menu</button>
                                         </div>