Personally, I think you do need to spend time and decompose your tasks. Looking at your examples, if you don't decompose, you'll end up with tickets that remain in progress for much longer than you prefer.
As a good example, let's look at Subtask 2
Implement the search function
You have presented this as if it has already been decomposed from the ...
I would advise against a sub-task approach as it is often painful for Devs to have to update each sub-task with their progress.
Your first subtask sounds like it is more appropriate as a Spike.
Subtask 2-4 sound like they could be acceptance criteria in a single story
Subtask 5 could be a task item or a subtask (either on is fine)
A driving principle ...