The SELECT * will return the contents of every column, including the
TextImage. This could easily be what is consuming the most time, especially
if TextImage values are quite large. If you do not need all the columns,
reduce to the bare mimimum column list.
Then, when you need to examine the contents of TextImage, just select the
single row that you need for any one display. Otherwise, just let it
satisfy the Contains statement.
By the way, your explanation says that you are using full text indexing
across many columns, but in this case you are only searching one column.