extra cool

This commit is contained in:
sadposter 2021-12-14 14:48:24 +00:00
parent 0d7bbee430
commit 8378c3a8bc
5 changed files with 39 additions and 31 deletions

View file

@ -24,8 +24,8 @@ defmodule Mix.Tasks.Pleroma.Search do
end
def run(["import", "users" | _rest]) do
start_pleroma()
start_pleroma()
from(u in User, where: u.nickname not in ["internal.fetch", "relay"])
|> get_all(:users)
end

View file

@ -46,26 +46,31 @@ defmodule Pleroma.Elasticsearch do
end
def put(%Activity{} = activity) do
{:ok, _} = Elastix.Document.index(
url(),
"activities",
"activity",
DocumentMappings.Activity.id(activity),
DocumentMappings.Activity.encode(activity)
)
{:ok, _} = bulk_post(
activity.object.hashtags, :hashtags
)
{:ok, _} =
Elastix.Document.index(
url(),
"activities",
"activity",
DocumentMappings.Activity.id(activity),
DocumentMappings.Activity.encode(activity)
)
{:ok, _} =
bulk_post(
activity.object.hashtags,
:hashtags
)
end
def put(%User{} = user) do
{:ok, _ } = Elastix.Document.index(
url(),
"users",
"user",
DocumentMappings.User.id(user),
DocumentMappings.User.encode(user)
)
{:ok, _} =
Elastix.Document.index(
url(),
"users",
"user",
DocumentMappings.User.id(user),
DocumentMappings.User.encode(user)
)
end
def bulk_post(data, :activities) do
@ -87,12 +92,13 @@ defmodule Pleroma.Elasticsearch do
end)
|> List.flatten()
{:ok, %{body: %{"errors" => false}}} = Elastix.Bulk.post(
url(),
d,
index: "activities",
type: "activity"
)
{:ok, %{body: %{"errors" => false}}} =
Elastix.Bulk.post(
url(),
d,
index: "activities",
type: "activity"
)
end
def bulk_post(data, :users) do
@ -115,7 +121,7 @@ defmodule Pleroma.Elasticsearch do
)
end
def bulk_post(data, :hashtags) do
def bulk_post([] = data, :hashtags) do
d =
data
|> Enum.map(fn d ->
@ -134,6 +140,8 @@ defmodule Pleroma.Elasticsearch do
)
end
def bulk_post(_, :hashtags), do: {:ok, nil}
def search(:raw, index, type, q) do
with {:ok, raw_results} <- Elastix.Search.search(url(), index, [type], q) do
results =

View file

@ -7,7 +7,7 @@ defmodule Pleroma.Search.Elasticsearch do
alias Pleroma.Search.Elasticsearch.Parsers
alias Pleroma.Web.Endpoint
defp es_query(:activity, query) do
def es_query(:activity, query) do
%{
size: 50,
terminate_after: 50,
@ -23,7 +23,7 @@ defmodule Pleroma.Search.Elasticsearch do
}
end
defp es_query(:user, query) do
def es_query(:user, query) do
%{
size: 50,
terminate_after: 50,
@ -36,7 +36,7 @@ defmodule Pleroma.Search.Elasticsearch do
}
end
defp es_query(:hashtag, query) do
def es_query(:hashtag, query) do
%{
size: 50,
terminate_after: 50,

View file

@ -3,7 +3,7 @@ defmodule Pleroma.Search.Elasticsearch.Parsers.Hashtag do
%{
term: %{
hashtag: %{
value: String.downcase(term),
value: String.downcase(term)
}
}
}

View file

@ -25,7 +25,7 @@ defmodule Pleroma.Search.Elasticsearch.Parsers.User do
query: term,
operator: "AND"
}
}
}
}
]
}