Compare commits

...

2 Commits

Author SHA1 Message Date
b71953fd1b Improve search results
add new dependency: unidecode
2024-06-17 21:06:28 +02:00
9aa156a9b4 Fix bug: partition can be found multiple times with private search off 2024-06-16 17:04:49 +02:00
5 changed files with 20 additions and 10 deletions

View File

@ -182,7 +182,7 @@ class User():
else:
self.accessible_partitions = db.execute(
"""
SELECT partition.uuid, partition.name,
SELECT DISTINCT partition.uuid, partition.name,
partition.author, partition.body,
partition.user_id, partition.source
FROM partition
@ -196,7 +196,7 @@ class User():
ON contient_user.user_id=?
AND album_id=album.id
UNION
SELECT album.id FROM album
SELECT DISTINCT album.id FROM album
JOIN groupe_contient_user
JOIN groupe_contient_album
ON groupe_contient_user.user_id=?

View File

@ -10,6 +10,7 @@ import os
import pypdf
import googlesearch
from unidecode import unidecode
from .db import get_db
@ -20,20 +21,20 @@ def local_search(query, partitions):
"""
Renvoie les 5 résultats les plus pertinents parmi une liste donnée
"""
query_words = [word.lower() for word in query.split(" ")]
query_words = [word.lower() for word in unidecode(query).split()]
def score_attribution(partition):
score = 0
for word in query_words:
if word != "":
if word in partition["name"].lower():
if word in unidecode(partition["name"]).lower():
score += 6
elif word in partition["author"].lower():
elif word in unidecode(partition["author"]).lower():
score += 4
elif word in partition["body"].lower():
elif word in unidecode(partition["body"]).lower():
score += 2
else:
score -= 1
for word in partition["name"].split(" "):
score -= 6
for word in unidecode(partition["name"]).split():
if word != "" and word.lower() not in query_words:
score -= 1
return score

View File

@ -4,3 +4,4 @@ google
colorama
pypdf
qrcode
unidecode

View File

@ -188,3 +188,10 @@ def install_babel():
def install_pypdf():
utils.install_package("pypdf")
"""
v1.10.*
"""
def install_unidecode():
utils.install_package("unidecode")

View File

@ -37,6 +37,7 @@ hooks = [
("v1.5.1", [("Move thumbnails", v1_hooks.move_thumbnails)]),
("v1.7.0", [("Install babel", v1_hooks.install_babel)]),
("v1.8.2", [("Install pypdf", v1_hooks.install_pypdf)])
("v1.10.3", [("Install unidecode", v1_hooks.install_unidecode)])
]