Retire search for "community sites"
authorMagnus Hagander <magnus@hagander.net>
Mon, 22 Feb 2021 10:11:58 +0000 (11:11 +0100)
committerMagnus Hagander <magnus@hagander.net>
Mon, 22 Feb 2021 10:13:25 +0000 (11:13 +0100)
This hasn't worked for a few years (since 900946df) and nobody has
complained. Getting rid of it allows similifying a few things on the
search server side as well.

media/css/main.css
pgweb/search/views.py
templates/search/sitesearch.html
tools/search/sql/functions.sql

index 4553a0dd7ff4592f2ff81a14996e613cff983b90..2de86d12720eac413ea412a5a2f2a371a83be4c3 100644 (file)
@@ -1227,11 +1227,6 @@ button.btn.btn-default {
 
 /* Input */
 
-input#allsites {
-  margin-top: 10px;
-  margin-left: 0;
-}
-
 input.form-control {
   height: 2.5em;
   margin: auto 0;
@@ -1283,15 +1278,6 @@ th.formfieldnamecontainer {
   margin-top: .4rem;
 }
 
-.form-check.search {
-  padding-left: 0;
-}
-
-.form-check.search label.form-check-label {
-  margin-left: 1rem;
-  vertical-align: middle;
-}
-
 .text-center.fixed-height h3 {
   height: 3.5em;
 }
index cfed3651732f492b03668d69d3a34870672d85cd..56733c82d871e330bf3878a38e139f338a6cc823 100644 (file)
@@ -47,7 +47,7 @@ def generate_pagelinks(pagenum, totalpages, querystring):
 
 
 @csrf_exempt
-@queryparams('a', 'd', 'l', 'ln', 'm', 'p', 'q', 's', 'u')
+@queryparams('d', 'l', 'ln', 'm', 'p', 'q', 's', 'u')
 @cache(minutes=30)
 def search(request):
     # Perform a general web search
@@ -122,7 +122,6 @@ def search(request):
     else:
         searchlists = False
         suburl = request.GET.get('u', None)
-        allsites = request.GET.get('a', None) == "1"
 
     # Check that we actually have something to search for
     if request.GET.get('q', '') == '':
@@ -277,11 +276,10 @@ def search(request):
 
         # perform the query for general web search
         try:
-            curs.execute("SELECT * FROM site_search(%(query)s, %(firsthit)s, %(hitsperpage)s, %(allsites)s, %(suburl)s, %(internal)s)", {
+            curs.execute("SELECT * FROM site_search(%(query)s, %(firsthit)s, %(hitsperpage)s, %(suburl)s, %(internal)s)", {
                 'query': query,
                 'firsthit': firsthit - 1,
                 'hitsperpage': hitsperpage,
-                'allsites': allsites,
                 'suburl': suburl,
                 'internal': include_internal,
             })
@@ -300,15 +298,13 @@ def search(request):
                 quoted_suburl = ''
         except Exception as e:
             quoted_suburl = ''
-        querystr = "?q=%s&a=%s&u=%s" % (
+        querystr = "?q=%s&u=%s" % (
             urllib.parse.quote_plus(query.encode('utf-8')),
-            allsites and "1" or "0",
             quoted_suburl,
         )
 
         return render(request, 'search/sitesearch.html', {
             'suburl': suburl,
-            'allsites': allsites,
             'hitcount': totalhits,
             'firsthit': firsthit,
             'lasthit': min(totalhits, firsthit + hitsperpage - 1),
index cc0a3a41713e97e14e92c5d93c74fdc7b7e98571..4b52fde57109a381c5cf405d84824aed2e7d01e1 100644 (file)
           </button>
         </span>
       </div><!-- /input-group -->
-      <div class="form-check search">
-        <input class="form-check-input" type="checkbox" name="a" value="1" {%if allsites%}checked="checked"{%endif%} id="allsites">
-        <label class="form-check-label" for="allsites">
-          Include community sites
-        </label>
-      </div>
     </div><!-- /.col-lg-6 -->
   </div><!-- /.row -->
 </form>
index c446fa99fd9fb02f31b84304efd4f042ecec08f3..a4680ed03f7d789ac570c4b22989c25313db50be 100644 (file)
@@ -60,7 +60,7 @@ LANGUAGE 'plpgsql';
 ALTER FUNCTION archives_search(text, int, timestamptz, timestamptz, int, int, char) SET default_text_search_config = 'public.pg';
 
 
-CREATE OR REPLACE FUNCTION site_search(query text, startofs int, hitsperpage int, allsites bool, _suburl text, includeinternal boolean DEFAULT False)
+CREATE OR REPLACE FUNCTION site_search(query text, startofs int, hitsperpage int, _suburl text, includeinternal boolean DEFAULT False)
 RETURNS TABLE (siteid int, baseurl text, suburl text, title text, headline text, rank float)
 AS $$
 DECLARE
@@ -80,16 +80,11 @@ BEGIN
 
     hits := 0;
 
-    IF allsites THEN
-        SELECT INTO pagecount sum(sites.pagecount) FROM sites;
-        OPEN curs FOR SELECT sites.id AS siteid, sites.baseurl, webpages.suburl, ts_rank_cd(fti,tsq) * relprio AS ts_rank_cd FROM webpages INNER JOIN sites ON webpages.site=sites.id WHERE fti @@ tsq AND (includeinternal OR NOT isinternal) ORDER BY ts_rank_cd(fti,tsq) * relprio DESC LIMIT 1000;
+    SELECT INTO pagecount sites.pagecount FROM sites WHERE id=1;
+    IF _suburl IS NULL THEN
+        OPEN curs FOR SELECT sites.id AS siteid, sites.baseurl, webpages.suburl, ts_rank_cd(fti,tsq) * relprio AS ts_rank_cd FROM webpages INNER JOIN sites ON webpages.site=sites.id WHERE fti @@ tsq AND site=1 AND (includeinternal OR NOT isinternal) ORDER BY ts_rank_cd(fti,tsq) * relprio DESC LIMIT 1000;
     ELSE
-        SELECT INTO pagecount sites.pagecount FROM sites WHERE id=1;
-        IF _suburl IS NULL THEN
-            OPEN curs FOR SELECT sites.id AS siteid, sites.baseurl, webpages.suburl, ts_rank_cd(fti,tsq) * relprio AS ts_rank_cd FROM webpages INNER JOIN sites ON webpages.site=sites.id WHERE fti @@ tsq AND site=1 AND (includeinternal OR NOT isinternal) ORDER BY ts_rank_cd(fti,tsq) * relprio DESC LIMIT 1000;
-        ELSE
-            OPEN curs FOR SELECT sites.id AS siteid, sites.baseurl, webpages.suburl, ts_rank_cd(fti,tsq) * relprio AS ts_rank_cd FROM webpages INNER JOIN sites ON webpages.site=sites.id WHERE fti @@ tsq AND site=1 AND webpages.suburl LIKE _suburl||'%' AND (includeinternal OR NOT isinternal) ORDER BY ts_rank_cd(fti,tsq) * relprio DESC LIMIT 1000;
-        END IF;
+        OPEN curs FOR SELECT sites.id AS siteid, sites.baseurl, webpages.suburl, ts_rank_cd(fti,tsq) * relprio AS ts_rank_cd FROM webpages INNER JOIN sites ON webpages.site=sites.id WHERE fti @@ tsq AND site=1 AND webpages.suburl LIKE _suburl||'%' AND (includeinternal OR NOT isinternal) ORDER BY ts_rank_cd(fti,tsq) * relprio DESC LIMIT 1000;
     END IF;
     LOOP
        FETCH curs INTO hit;
@@ -106,4 +101,4 @@ BEGIN
 END;
 $$
 LANGUAGE 'plpgsql';
-ALTER FUNCTION site_search(text, int, int, bool, text, bool) SET default_text_search_config = 'public.pg';
+ALTER FUNCTION site_search(text, int, int, text, bool) SET default_text_search_config = 'public.pg';