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
, or
lub 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.