In the past, when I needed to solve this problem, I presented users with a list of elements (in one or more columns) and gave them one text box for entering text. Then I matched the text with the text in the columns and collapsed the list (deleting entries that do not match) as they were entered.
This approach is reminiscent of Google users. Everyone knows how to google.
If you do not like the idea of presenting a large list of all elements initially, you can first display an empty results pane and display the results after entering the query.
source
share