You will want to switch the two if true/false locations:
If(SearchLessonsInput.Text<>"",(Search(Lessons,SearchLessonsInput.Text,"LessonKeywords_")),Lessons)
That way if the .Text has a value it runs your search, and if it is empty then load all of the collection Lessons.
To clear out the SearchLessonsInput you can use the example 1 I previously sent. Put a variable into the SearchLessonsInput default called resetText.
Then in your screens OnVisible put in UpdateContext({resetText: " ", resetText: ""})
That will force the text in SearchLessonsInput to be cleared out to nothing everytime you open that screen (on load effectively).
edit: Just a quick note, I also add either an X or refresh button with that same UpdateContext resetting of the variable so the user can clear and refresh the filtered information easier than deleting the contents manually.
You may also want to try: UpdateContext({resetText:" "});UpdateContext({resetText:""}) as the variable reset. I honestly can't remember if that works better than in a single statement.