mirror of
https://github.com/typesense/typesense.git
synced 2025-05-23 15:23:40 +08:00
Optimize filter_result_iterator_t::to_filter_id_array
.
This commit is contained in:
parent
c571812696
commit
7ef71b0fa8
@ -1074,6 +1074,19 @@ uint32_t filter_result_iterator_t::to_filter_id_array(uint32_t*& filter_array) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!filter_node->isOperator) {
|
||||
const filter a_filter = filter_node->filter_exp;
|
||||
field f = index->search_schema.at(a_filter.field_name);
|
||||
|
||||
if (!a_filter.referenced_collection_name.empty() || a_filter.field_name == "id" ||
|
||||
(index->field_is_indexed(a_filter.field_name) && (f.is_integer() || f.is_float() || f.is_bool()))) {
|
||||
filter_array = new uint32_t[filter_result.count];
|
||||
std::copy(filter_result.docs, filter_result.docs + filter_result.count, filter_array);
|
||||
|
||||
return filter_result.count;
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<uint32_t> filter_ids;
|
||||
do {
|
||||
filter_ids.push_back(seq_id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user