37 lines
778 B
Elixir
37 lines
778 B
Elixir
|
defmodule Pleroma.Elasticsearch do
|
||
|
alias Pleroma.Activity
|
||
|
alias Pleroma.Elasticsearch.DocumentMappings
|
||
|
|
||
|
defp url do
|
||
|
Pleroma.Config.get([:elasticsearch, :url])
|
||
|
end
|
||
|
|
||
|
def put(%Activity{} = activity) do
|
||
|
Elastix.Document.index(
|
||
|
url(),
|
||
|
"activities",
|
||
|
"activity",
|
||
|
DocumentMappings.Activity.id(activity),
|
||
|
DocumentMappings.Activity.encode(activity)
|
||
|
)
|
||
|
end
|
||
|
|
||
|
def bulk_post(data, :activities) do
|
||
|
d = data
|
||
|
|> Enum.map(fn d ->
|
||
|
[
|
||
|
%{index: %{_id: DocumentMappings.Activity.id(d)}},
|
||
|
DocumentMappings.Activity.encode(d)
|
||
|
]
|
||
|
end)
|
||
|
|> List.flatten()
|
||
|
|
||
|
IO.inspect Elastix.Bulk.post(
|
||
|
url(),
|
||
|
d,
|
||
|
index: "activities",
|
||
|
type: "activity"
|
||
|
)
|
||
|
end
|
||
|
end
|