Jelajahi Sumber

문서수 1만 이상이면 알고리즘 다르게 작동

Surplus_Up (2DU) 6 tahun lalu
induk
melakukan
38f5f3df0a
3 mengubah file dengan 44 tambahan dan 26 penghapusan
  1. 16 8
      route/api_search.py
  2. 1 2
      route/list_title_index.py
  3. 27 16
      route/search_deep.py

+ 16 - 8
route/api_search.py

@@ -14,14 +14,22 @@ def api_search_2(conn, name):
     if page * num > 0:
         page = page * num - num
     else:
-        page = 0      
-
-    curs.execute(db_change("" + \
-        "select distinct title, case when title like ? then 'title' else 'data' " + \
-        "end from data where title like ? or data like ? order by case " + \
-        "when title like ? then 1 else 2 end limit ?, ?"),
-        ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', page, num]
-    )
+        page = 0   
+           
+    curs.execute(db_change('select data from other where name = "count_all_title"'))
+    if int(curs.fetchall()[0][0]) < 10000:
+        curs.execute(db_change("" + \
+            "select distinct title, case when title like ? then 'title' else 'data' " + \
+            "end from data where title like ? or data like ? order by case " + \
+            "when title like ? then 1 else 2 end limit ?, ?"),
+            ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', page, num]
+        )
+    else:
+        curs.execute(db_change("" + \
+            "select title from data where title like ? order by case " + \
+            "when title like ? limit ?, 50"),
+            ['%' + name + '%', sql_num]
+        )
     all_list = curs.fetchall()
     if all_list:
         return flask.jsonify(all_list)

+ 1 - 2
route/list_title_index.py

@@ -30,8 +30,7 @@ def list_title_index_2(conn):
         count_end = []
 
         curs.execute(db_change('select data from other where name = "count_all_title"'))
-        all_title = curs.fetchall()
-        if int(all_title[0][0]) < 50000:
+        if int(curs.fetchall()[0][0]) < 10000:
             curs.execute(db_change("select count(title) from data"))
             count = curs.fetchall()
             if count:

+ 27 - 16
route/search_deep.py

@@ -32,24 +32,35 @@ def search_deep_2(conn, name):
             <hr class=\"main_hr\">
             <ul>
             '''
+    curs.execute(db_change('select data from other where name = "count_all_title"'))
+    if int(curs.fetchall()[0][0]) < 10000:
+        curs.execute(db_change("" + \
+            "select distinct title, case " + \
+            "when title like ? then 'title' else 'data' end from data " + \
+            "where title like ? or data like ? order by case " + \
+            "when title like ? then 1 else 2 end limit ?, 50"),
+            ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', sql_num]
+        )
+        all_list = curs.fetchall()
+        if all_list:
+            test = all_list[0][1]
+            
+            for data in all_list:
+                if data[1] != test:
+                    div_plus += '</ul><hr class=\"main_hr\"><ul>'
+                    
+                    test = data[1]
 
-    curs.execute(db_change("" + \
-        "select distinct title, case when title like ? then 'title' else 'data' " + \
-        "end from data where title like ? or data like ? order by case " + \
-        "when title like ? then 1 else 2 end limit ?, 50"),
-        ['%' + name + '%', '%' + name + '%', '%' + name + '%', '%' + name + '%', sql_num]
-    )
-    all_list = curs.fetchall()
-    if all_list:
-        test = all_list[0][1]
-        
+                div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (' + data[1] + ')</li>'
+    else:
+        curs.execute(db_change("" + \
+            "select title from data where title like ? order by case " + \
+            "when title like ? limit ?, 50"),
+            ['%' + name + '%', sql_num]
+        )
+        all_list = curs.fetchall()    
         for data in all_list:
-            if data[1] != test:
-                div_plus += '</ul><hr class=\"main_hr\"><ul>'
-                
-                test = data[1]
-
-            div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (' + data[1] + ')</li>'
+            div_plus += '<li><a href="/w/' + url_pas(data[0]) + '">' + data[0] + '</a> (title)</li>'
 
     div += div_plus + '</ul>'
     div += next_fix('/search/' + url_pas(name) + '?num=', num, all_list)