From a215f01ccef638904c8d700ed60dd7b95f4e8923 Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Wed, 17 Aug 2022 00:11:25 +0100 Subject: [PATCH 1/2] ensure we only find creates in ES search --- lib/pleroma/search/elasticsearch.ex | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/search/elasticsearch.ex b/lib/pleroma/search/elasticsearch.ex index 7c7ca82c8..0f8b9c800 100644 --- a/lib/pleroma/search/elasticsearch.ex +++ b/lib/pleroma/search/elasticsearch.ex @@ -62,8 +62,11 @@ defmodule Pleroma.Search.Elasticsearch do Task.async(fn -> q = es_query(:activity, parsed_query, offset, limit) - Pleroma.Search.Elasticsearch.Store.search(:activities, q) - |> Enum.filter(fn x -> Visibility.visible_for_user?(x, user) end) + :activities + |> Pleroma.Search.Elasticsearch.Store.search(q) + |> Enum.filter(fn x -> + x.data["type"] == "Create" && x.object.data["type"] == "Note" && Visibility.visible_for_user?(x, user) + end) end) activity_results = Task.await(activity_task) -- 2.34.1 From d65317265cef8702144e9ad37cf318529b81894b Mon Sep 17 00:00:00 2001 From: FloatingGhost Date: Wed, 17 Aug 2022 00:14:21 +0100 Subject: [PATCH 2/2] add changelog entry --- CHANGELOG.md | 1 + lib/pleroma/search/elasticsearch.ex | 5 +++-- lib/pleroma/search/elasticsearch/store.ex | 1 - 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3618211e4..c1e1d01c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Compatibility with latest meilisearch - Resolution of nested mix tasks (i.e search.meilisearch) in OTP releases +- Elasticsearch returning likes and repeats, displaying as posts ### Removed - Non-finch HTTP adapters. `:tesla, :adapter` is now highly recommended to be set to the default. diff --git a/lib/pleroma/search/elasticsearch.ex b/lib/pleroma/search/elasticsearch.ex index 0f8b9c800..16b01101a 100644 --- a/lib/pleroma/search/elasticsearch.ex +++ b/lib/pleroma/search/elasticsearch.ex @@ -23,7 +23,7 @@ defmodule Pleroma.Search.Elasticsearch do timeout: "5s", sort: [ "_score", - %{_timestamp: %{order: "desc", format: "basic_date_time"}} + %{"_timestamp" => %{order: "desc", format: "basic_date_time"}} ], query: %{ bool: %{ @@ -65,7 +65,8 @@ defmodule Pleroma.Search.Elasticsearch do :activities |> Pleroma.Search.Elasticsearch.Store.search(q) |> Enum.filter(fn x -> - x.data["type"] == "Create" && x.object.data["type"] == "Note" && Visibility.visible_for_user?(x, user) + x.data["type"] == "Create" && x.object.data["type"] == "Note" && + Visibility.visible_for_user?(x, user) end) end) diff --git a/lib/pleroma/search/elasticsearch/store.ex b/lib/pleroma/search/elasticsearch/store.ex index 895b76d7f..3b7bbb838 100644 --- a/lib/pleroma/search/elasticsearch/store.ex +++ b/lib/pleroma/search/elasticsearch/store.ex @@ -42,7 +42,6 @@ defmodule Pleroma.Search.Elasticsearch.Store do results |> Enum.map(fn result -> result["_id"] end) |> Pleroma.Activity.all_by_ids_with_object() - |> Enum.sort(&(&1.inserted_at >= &2.inserted_at)) else e -> Logger.error(e) -- 2.34.1