def es_query(:activity, query, offset, limit) do
must = Parsers.Activity.parse(query)
- if must == [] do
- :skip
- else
- %{
- size: limit,
- from: offset,
- terminate_after: 50,
- timeout: "5s",
- sort: [
- "_score",
- %{_timestamp: %{order: "desc", format: "basic_date_time"}}
- ],
- query: %{
- bool: %{
- must: must
- }
+ %{
+ size: limit,
+ from: offset,
+ terminate_after: 50,
+ timeout: "5s",
+ sort: [
+ "_score",
+ %{"_timestamp" => %{order: "desc", format: "basic_date_time"}}
+ ],
+ query: %{
+ bool: %{
+ must: must
}
}
- end
+ }
end
defp maybe_fetch(:activity, search_query) 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)