I have a test data set (500k rows)
{"_id": ObjectId("61309575c9346aab086f91fb"),"listId": ObjectId("61309575c9346aab086f91fa"),"createdDate": ISODate("2021-09-02T09:12:21.594Z"),"es0": "Firstname 0 Moscow","es1": "firstname0@gmail.com","es2": "0701230000","es3": "Equatorial Guinea","es4": "Iceland","es5": "Los Angeles International Airport","ed0": ISODate("1975-10-17T00:00:00Z"),"ed1": ISODate("2020-01-01T00:00:00Z"),"ei0": 46,"ei1": 1345 }
I have a test query like this
db.collection.aggregate([{ $search: {"index": "test_index1","compound": { "filter": [{"equals": {"path": "listId","value": ObjectId("613098df46239505942b8b13") } }],"must": [{"text": {"query": 'Los Angeles',"path": {'wildcard': '*' } } }] } } }, { $limit: 10 }]);
which is super fast.
but if I add in a sort stage (before $limit)
{ $sort: { ei0: -1 } }
it gets REALLY slow
I do have a regular index on "ei0" and its included in the search index as well (defined as a Number and dynamic mapping off)
Is there anyway to sort on any field (asc/desc), inside the search pipeline?