diff options
| author | Lain Soykaf <lain@lain.com> | 2024-05-19 14:41:05 +0400 |
|---|---|---|
| committer | Lain Soykaf <lain@lain.com> | 2024-05-19 14:41:05 +0400 |
| commit | 1b4f1db9b2990f725a06f0dff41980c51853c5e9 (patch) | |
| tree | 3bef71c11d7cb3b96b25878a3b61732eb0583f6b /lib | |
| parent | dbaab6f54e306e5fb930ce1ed0699631c8aeaae1 (diff) | |
| download | pleroma-1b4f1db9b2990f725a06f0dff41980c51853c5e9.tar.gz pleroma-1b4f1db9b2990f725a06f0dff41980c51853c5e9.zip | |
QdrantSearch: Support pagination.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/pleroma/search/qdrant_search.ex | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/pleroma/search/qdrant_search.ex b/lib/pleroma/search/qdrant_search.ex index 5ae04be78..283c43075 100644 --- a/lib/pleroma/search/qdrant_search.ex +++ b/lib/pleroma/search/qdrant_search.ex @@ -54,10 +54,11 @@ defmodule Pleroma.Search.QdrantSearch do } end - defp build_search_payload(embedding) do + defp build_search_payload(embedding, options) do %{ vector: embedding, - limit: 20 + limit: options[:limit] || 20, + offset: options[:offset] || 0 } end @@ -96,12 +97,15 @@ defmodule Pleroma.Search.QdrantSearch do end @impl true - def search(_user, query, _options) do + def search(_user, query, options) do query = "Represent this sentence for searching relevant passages: #{query}" with {:ok, embedding} <- get_embedding(query), {:ok, %{body: %{"result" => result}}} <- - QdrantClient.post("/collections/posts/points/search", build_search_payload(embedding)) do + QdrantClient.post( + "/collections/posts/points/search", + build_search_payload(embedding, options) + ) do ids = Enum.map(result, fn %{"id" => id} -> Ecto.UUID.dump!(id) |
