You can use links, eg [[Mt. 14:22-33]]. Clicking that link creates the note and you can then see the backlinks. You can also use that note to include additional info about the passage (eg. a quote).
There are two ways you can do this with the built in Search plug-in.
1) Literal Search
Just simply type the passage you are looking, e.g., Mt. 14:22-33. Note, because of the colon, you will need to put your search query in quotes, “Mt. 14:22-33”
This will bring up everywhere that the exact text “Mt. 14:22-33” is listed. Here’s an example from my library using Matthew 5:17:
The problem with this route is it only finds results that exactly match the search query, so it wouldn’t surface “Mt. 5:17” or “Matt 5:17” etc.. You would need to manually type in the various formats of how that passage might appear in your vault to get all the different results.
2) Regular Expression Search
Regular Expressions are vastly more powerful but can become quite complex if you are not familiar with how to write or use them.
The regular expression below finds all the different forms of Matthew 5:17 that may occur in a file:
I’m hopeful that as Obsidian Bases expands that they will allow combining the Search Plug-in with the Bases Plug-in. This would allow creating an index generator. I suspect someone could create their own plug-in that generates an index using the search plug-in but I have not the time or skill to do that.