parent
e54ef63b01
commit
ceaf13085a
@ -1187,8 +1187,28 @@ class Event(models.Model):
|
||||
output_field=models.IntegerField(),
|
||||
)
|
||||
)
|
||||
with_emoji = [
|
||||
s for s in self.tags if any(char in emoji.EMOJI_DATA for char in s)
|
||||
]
|
||||
if len(with_emoji) > 0:
|
||||
qs = qs.annotate(
|
||||
overlap_emoji_tags=RawSQL(
|
||||
sql="ARRAY(select UNNEST(%s::text[]) INTERSECT select UNNEST(tags))",
|
||||
params=(with_emoji,),
|
||||
output_field=ArrayField(models.CharField(max_length=50)),
|
||||
)
|
||||
).annotate(
|
||||
overlap_emoji_tags_count=Func(
|
||||
F("overlap_emoji_tags"),
|
||||
function="CARDINALITY",
|
||||
output_field=models.IntegerField(),
|
||||
)
|
||||
)
|
||||
else:
|
||||
qs = qs.annotate(overlap_emoji_tags_count=Value(0))
|
||||
|
||||
else:
|
||||
qs = qs.annotate(overlap_tags_count=Value(1))
|
||||
qs = qs.annotate(overlap_tags_count=Value(0))
|
||||
|
||||
if self.exact_location:
|
||||
qs = (
|
||||
@ -1216,7 +1236,8 @@ class Event(models.Model):
|
||||
)
|
||||
)
|
||||
.annotate(
|
||||
score=F("overlap_tags_count") * 30
|
||||
score=F("overlap_tags_count") * 20
|
||||
+ F("overlap_emoji_tags_count") * 40
|
||||
+ F("similarity_title") * 2
|
||||
+ F("similarity_description") * 10
|
||||
+ 10 / (F("distance") + 1)
|
||||
|
Loading…
x
Reference in New Issue
Block a user