Dynamic Search - List of keywords(Array of Keywords) /Multiple search a same time when document is being read

Hello
Using New Sr.StreamReader , Regex.Matches
I am able to pass all sets of 15 keyword one by one to search Bot read to #n number PDF and Extract required information like
PAGENO,
Start position of Kewword,
Kewword+10charector(Start positonn where keyword is found).

My Issue is, that there are more than 100 pdf to be read, each PDF has more than 3000 Pages.
My bot processing time is very bad – as it passes each Keyword from Array, it search through all 3000 Pages of Each PDF and extract PDF Information and moves to next KEyword.

Solution - I am looking for is, while reading PDF first time Search/SCAN it should look for all Keyword from array at one shot/in first run for Each line
This will save Bot Processing time and will give output fast and less load on system.

I am interested in the same solution for a similar process.