Dúvida, no caso do algoritmo de pesquisa (não sei se por relevância ou não ainda) não seria mais proveitoso usar um elastic-search, apache solar, ou similares que utilizam de geometria analítica ou melhor similaridade de cossenos para fazer a pesquisa.
Se não me engano, mesmo dentro dos Database também tem recursos onde dá para fazer um full-text search usado em pesquisas.