Biblioteca de JavaScript para la búsqueda de estilo de motor de búsqueda?

¿Existe una biblioteca de JavaScript que pueda determinar si una cadena coincide con una consulta de búsqueda? Debería ser eficiente y proporcionar una funcionalidad de consulta avanzada como la de Google o LexisNexis (cosas como y / u operadores, sinónimos y paréntesis). Cualquier tipo de características de búsqueda avanzada sería genial; no tiene que ser una coincidencia exacta con ningún motor de búsqueda en particular.

Motivación: tengo una página HTML con un cuadro de búsqueda seguido de un grupo de párrafos (que tienen ID únicos y se generan a partir de una matriz de JavaScript). Cuando el usuario escribe una consulta de búsqueda en el cuadro y presiona entrar, todos los párrafos deben estar ocultos (es decir,display ajustado anone) si no coinciden con la consulta.

Mi estrategia actual (usando jQuery):

Separe la cadena de consulta en una matriz de palabras clave dividiéndola en espacios en blanco.Ocultar todos los párrafos con$('p').hide().Para cada palabra clave, muestre un párrafo que lo contenga con$('p:contains("'+keyword+'")').show().

La cual es una función de búsqueda extremadamente limitada que distingue entre mayúsculas y minúsculas, trata todas las palabras clave como opcionales y no proporciona operadores comoand, or, o paréntesis. También es ineficiente porque atraviesa cada cadena una vez para cada palabra clave, incluso si ya se ha comparado.

Respuestas a la pregunta(5)

Su respuesta a la pregunta