Biblioteka JavaScript do wyszukiwania w stylu wyszukiwarki?

Czy istnieje biblioteka JavaScript, która może określić, czy ciąg pasuje do zapytania? Powinien być wydajny i zapewniać zaawansowane funkcje zapytań, takie jak Google lub LexisNexis (takie rzeczy i / lub operatory, synonimy i nawiasy). Wszelkie zaawansowane funkcje wyszukiwania byłyby świetne; nie musi być dokładnym dopasowaniem do konkretnej wyszukiwarki.

Motywacja: Mam stronę HTML z polem wyszukiwania, po którym następuje kilka akapitów (które mają unikalne identyfikatory i są generowane z tablicy JavaScript). Gdy użytkownik wpisze zapytanie w polu i naciśnie enter, wszystkie akapity powinny być ukryte (tzn. Ichdisplay Ustawićnone) jeśli nie pasują do zapytania.

Moja obecna strategia (przy użyciu jQuery):

Rozdziel ciąg zapytania na tablicę słów kluczowych, dzieląc go na białe znaki.Ukryj wszystkie akapity za pomocą$('p').hide().Dla każdego słowa kluczowego pokaż akapit zawierający go$('p:contains("'+keyword+'")').show().

Jest to bardzo ograniczona funkcja wyszukiwania, w której rozróżniana jest wielkość liter, traktuje wszystkie słowa kluczowe jako opcjonalne i nie zapewnia operatorom takich możliwościand, orlub nawiasy. Jest również nieefektywny, ponieważ przechodzi przez każdy ciąg raz dla każdego słowa kluczowego, nawet jeśli zostało już dopasowane.

questionAnswers(5)

yourAnswerToTheQuestion