Fulltekstsøk med Elasticsearch

innhold
  1. Fulltekstsøk med Elasticsearch
  2. Spørsmål og skjema frihet
  3. Finn og utvide
  4. Konklusjon
  5. leste på en side
Fulltekstsøk med Elasticsearch

Når det gjelder å søke i fulltekst i store datamengder, lang førte ingen vei rundt Apache Solr. Siden 2010, en annen også er bygget på Lucene prosjekt tilgjengelige som i økende grad å posisjonere seg som et alternativ til den etablerte Solr og mer hyppig benyttes er med Elasticsearch.

Det Elasticsearch er vellykket er på grunn av funksjoner som enkle clustering å implementere høy tilgjengelighet og lastbalansering, et fullt REST og Java API og at det fungerer schemalos og dokument-orientert til det faktum. I tillegg endringer er også under høy belastning endring raskt inn i søkeresultatene, så Elasticsearch utviklerne også snakke om real-time søk. Men kanskje det viktigste aspektet er den enkle bruken av Elasticsearch: Mer enn et Java Development Kit, curl og en redaktør er ikke nødvendig å ta med i et par minutter, en Elasticsearch eksempel oppe og går, og for å indeksere det første dokumentet.

Fugleperspektiv

Elasticsearch følger hvor mange representanter for NoSQL systemer, et dokument-tilnærming til data. For senere søk sendes til indeks data som JSON-dokumenter til Elasticsearch og lagret.

Internt Elasticsearch fra dokumentene i indeksene. En indeks i dette tilfellet representerer bare et logisk navn plass er lagret i de mange dokumenter av forskjellige typer. For eksempel kan alle dokumenter med adresser lagres og sammenfattet i en indeks adresser, uavhengig av om de inneholder tyske eller japanske adresser. Den fysiske lagring er i flere fragmenter som primære utpekte Lucene tilfeller. Splitting av en indeks anvendes for lastfordeling som kan være så lang redigere strøm eller komplekse søk i parallell ved hjelp av flere enheter. Skår av en indeks kan videre bli distribuert til forskjellige noder i en klynge, for derved å fordele belastningen og fysisk. For å hindre tap av data i tilfelle av svikt i en node kan opprettes fra en hvilken som helst primært fragment mer enn Replika skår utpekte kopier på andre klynge noder. Denne funksjonen er nyttig for å optimalisere spørringer, ettersom fordelingen av skår samt lagring av dokumenter og utføre spørringer påvirkes.

Medfødt Elasticsearch er utformet som en klynge tilnærming på master-slave mønster. Hver node av en klynge Elasticsearch kan innta hver av de to valser. Ved oppstart, utfører hver node en oppdagelsesprosess og undersøkt via unicast eller multicast til andre noder i det samme nettverket. Hvorvidt en annen node er en del av det samme område, mens en avgjørelse om de konfigurerte nodene for klyngen navn, en enkel streng egenskap. Så det er mulig å operere flere klynger parallelt på samme nettverk. Deretter noden handelen med hverandre fra hovednoden, som da er ansvarlig for å koordinere klyngen. det svikter eller er han litt tid kan ikke nås, de resterende nodene finne en ny mester.

Installere, konfigurere, start

For å installere Elasticsearch bare laste ned nyeste distribusjon og pakke ut. Da kan det være med en gang

./ Bin / Elasticsearch -f

starte. Alternativet -f Elasticsearch forblir på er loggmeldinger til konsollen.

en null-konfigurasjon tilnærming gjelder for Elasticsearch server, noe som betyr at for alle mulige innstillinger med standardverdier som er gitt. de ikke passer, de kan tilpasses config / elasticsearch.yml til sine egne krav på skriftlig i YAML format ved tom konfigurasjonsfil standard. I alle fall klyngen navn Elasticsearch eksempel er standard satt til Elasticsearch bør, via parameter cluster.name endres til et navn du selv velger. Ellers er det en risiko for at en annen ny start eksempel på det samme nettverket blir klyngen av sin egen og mottar data og søk. Utover en titt på konfigurasjonsfilen er verdt fordi det er godt dokumentert, og gir en god innsikt om mulige innstillinger av serveren. Etter å ha startet Elasticsearch lytter på port 9200th