Implement sorting documents

This commit is contained in:
Mubelotix 2025-06-25 15:36:12 +02:00
parent ae8c1461e1
commit 6e0526090a
No known key found for this signature in database
GPG key ID: 0406DF6C3A69B942
3 changed files with 82 additions and 0 deletions

View file

@ -17,6 +17,10 @@ use meilisearch_types::error::deserr_codes::*;
use meilisearch_types::error::{Code, ResponseError};
use meilisearch_types::heed::RoTxn;
use meilisearch_types::index_uid::IndexUid;
use meilisearch_types::milli::facet::facet_sort_recursive::recursive_facet_sort;
use meilisearch_types::milli::facet::{ascending_facet_sort, descending_facet_sort};
use meilisearch_types::milli::heed_codec::facet::FacetGroupKeyCodec;
use meilisearch_types::milli::heed_codec::BytesRefCodec;
use meilisearch_types::milli::update::IndexDocumentsMethod;
use meilisearch_types::milli::vector::parsed_vectors::ExplicitVectors;
use meilisearch_types::milli::DocumentId;
@ -1533,6 +1537,15 @@ fn retrieve_documents<S: AsRef<str>>(
})?
}
let fields = vec![(0, true)];
let number_db = index
.facet_id_f64_docids
.remap_key_type::<FacetGroupKeyCodec<BytesRefCodec>>();
let string_db = index
.facet_id_string_docids
.remap_key_type::<FacetGroupKeyCodec<BytesRefCodec>>();
candidates = recursive_facet_sort(&rtxn, number_db, string_db, &fields, candidates)?;
let (it, number_of_documents) = {
let number_of_documents = candidates.len();
(