Detect product names within search query text?

At present using our Sphinx / fultext search on our discussion forum only recognises and flags up to us key word matches of product names or alias / nicknames in a (separate database) if they are at the front of the search query text string.

Using the product "Shure SM57" as an example

"Shure SM57 microphone, is it good for vocals?" - is detected
But
"Can I use my Shure SM57 microphone for vocals?" - is not detected.

Can ES be configure to flag up key words mid query string?

What about multiple product mentions with in a query string?

"Can't decide between buying an SM57 or a U87 please advise"

Could it be made to flag up detection of both?

Further - say a discussion thread has 30 products mentioned per web page - is ES a good tool to detect and flag up and output each of the products that are detected "live" at the time of every visitors page load? (When started the discussion thread may only refer to one or two products but as other members add to it with their posts more products will be added) or is this an inefficient method?

For clarity there is a discussion database and a separate product database to reference to.

Many thanks in advance for the beginner question

Yes, you can quite easily index your products into Elasticsearch, and then use those text strings to search your product index, and get matches regardless of where the matching text appears in the search string.

No, Elasticsearch does not provide some means to analyze some in-memory data. However, it is quite common for Elasticsearch to be used to accomplish things roughly equivalent, indexing users' activity, and querying that index to discover what topics (or whatever) are popular or trending in general and/or what the specific user has demonstrated interest in, and shaping the delivered content on that basis.

That's great to know.

much appreciated.