ellie,
I've managed to fix up my search indices and server-side searching now works in Thunderbird but it's still a no-go on the mobile client.
I've looked a bit more closely at the telemetry from Thunderbird and it never does a "UID SEARCH". Instead, it does a "UID FETCH 1:*" and Cyrus successfully returns all of the messages that are in the user's inbox. This is great for a heavy client like Thunderbird which will cache all of that stuff on the user's local disk.
SOGo/Android/Apple are all executing a "UID SEARCH beginning_msg_index:ending_msg_index" to get a list of message IDs. For some strange reason, Cyrus just blindly fires back a "* SEARCH"; telling the client that there's nothing there. I'm thinking these message indexes should map to actual file names on disk.
I now have something to grep on. I'll start looking for "* SEARCH" in the source and see what Cyrus is doing. Maybe there are some hints in the code on what settings I need in order for UID SEARCHes to succeed.
Thanks,
Chris