diff --git a/src/field.cpp b/src/field.cpp index 9fa978a8..662d236e 100644 --- a/src/field.cpp +++ b/src/field.cpp @@ -114,9 +114,7 @@ Option filter::parse_filter_query(const string& simple_filter_query, } } - if(!id_filter.values.empty()) { - filters.push_back(id_filter); - } + filters.push_back(id_filter); continue; } diff --git a/test/collection_filtering_test.cpp b/test/collection_filtering_test.cpp index 3b8dabd6..c0a669c7 100644 --- a/test/collection_filtering_test.cpp +++ b/test/collection_filtering_test.cpp @@ -1524,6 +1524,19 @@ TEST_F(CollectionFilteringTest, FilteringViaDocumentIds) { ASSERT_STREQ("125", results["hits"][1]["document"]["id"].get().c_str()); ASSERT_STREQ("127", results["hits"][2]["document"]["id"].get().c_str()); + // when no IDs exist + results = coll1->search("*", + {}, "id: [1000] && num_employees: <300", + {}, sort_fields, {0}, 10, 1, FREQUENCY, {true}).get(); + + ASSERT_EQ(0, results["found"].get()); + + results = coll1->search("*", + {}, "id: 1000", + {}, sort_fields, {0}, 10, 1, FREQUENCY, {true}).get(); + + ASSERT_EQ(0, results["found"].get()); + collectionManager.drop_collection("coll1"); }