Hoppa till innehåll
Installation

Installera Elasticsearch

En sökmotor ni kör själva, som hittar rätt även vid stavfel, med minneskravet och provlicensens utgång utskrivna.

Vad Elasticsearch är

En sökmotor som ni kör själva. Ni matar in era produkter, artiklar eller kunder, och får tillbaka en sökning som fungerar som användare förväntar sig: den hittar rätt även vid stavfel, rangordnar träffarna efter relevans och svarar på millisekunder.

Jämför med hur sökning brukar byggas i en vanlig databas, alltså med att leta efter en textsnutt någonstans i ett fält. Den varianten hittar ingenting om kunden skriver plasttsskiva i stället för plastskiva, och den kan inte avgöra vilken av trettio träffar som är mest relevant. Elasticsearch gör båda.

För ett företag med en handfull produkter är det överdrivet. Har ni tusen artiklar, eller ett arkiv någon ska leta i, är skillnaden märkbar från första dagen.

Det här är ett serverprogram

Elasticsearch installeras inte som ett vanligt program. Det är en tjänst som körs i bakgrunden och som era egna program pratar med över nätet. Enklaste vägen dit är Docker, samma verktyg som i Installera Docker. Har ni inte Docker på plats, börja där.

På Windows innebär Docker Desktop att ni också får WSL2, alltså Windows inbyggda Linux. Docker Desktop installerar det normalt själv, men blir ni tillfrågade ska ni svara ja.

Räkna också med minnet. Elasticsearch vill ha minst 4 GB ledigt, och en dator med 8 GB totalt blir trög när den kör. Det är inget fel, det är vad en sökmotor kostar i resurser.

Windows och Linux Mint

Utgivaren har ett installationsskript för just utveckling, och det sparar er en halvtimmes konfiguration. På Linux Mint öppnar ni Terminal och kör:

curl -fsSL https://elastic.co/start-local | sh

På Windows fungerar inte den raden i PowerShell. Där finns inget sh som kan köra skriptet, och curl är namnet på ett annat kommando än Linux-varianten. Kör raden i stället i WSL2-terminalen, alltså den Ubuntu som följde med Docker Desktop: sök efter Ubuntu i Startmenyn, eller skriv wsl i PowerShell så hamnar ni i den. Därifrån är allt som står nedan detsamma.

Den hämtar och startar både Elasticsearch och Kibana, alltså det grafiska gränssnittet. När den är klar skriver den ut lösenordet och en API-nyckel direkt i fönstret. Ni behöver inte skriva av dem för hand: skriptet sparar båda i filen .env i mappen elastic-start-local som ES_LOCAL_PASSWORD och ES_LOCAL_API_KEY, och de går att läsa där igen om ni missar dem i fönstret.

Elasticsearch svarar sedan på http://localhost:9200 och Kibana på http://localhost:5601.

På Linux behöver systemet ofta en inställning höjd innan tjänsten startar, annars stannar den direkt med ett meddelande om max_map_count:

sudo sysctl -w vm.max_map_count=262144

Den inställningen försvinner vid omstart. Ska den ligga kvar lägger ni in raden nedan sist i filen /etc/sysctl.conf, alltså bara själva inställningen, utan sudo sysctl -w framför:

vm.max_map_count=262144

Filen ligger utanför er hemmapp, så den öppnas med sudo, till exempel sudo nano /etc/sysctl.conf (nano följer med Mint från start; har ni installerat micro fungerar det förstås också).

Tre saker att göra först

  1. Kontrollera att den lever innan ni gör något annat. Skriptet slår på säkerhet, så ett anrop utan inloggning svarar med ett felmeddelande om security_exception. Gå till mappen elastic-start-local och kör i stället:
    source .env
    curl $ES_LOCAL_URL -H "Authorization: ApiKey ${ES_LOCAL_API_KEY}"
    Ni ska få tillbaka ett svar med versionsnummer och ett klusternamn. Kommer inget svar är det nästan alltid minnet eller inställningen ovan.
  2. Lägg in tio riktiga rader från ert eget projekt, inte exempeldata. Det tar en kvart och ni ser direkt om era fält är rimligt uppbyggda. Exempeldata är alltid välstädad, och er egen är det aldrig.
  3. Sök i Kibana i stället för att skriva kod. Under Dev Tools kan ni skriva sökningar direkt och se svaret bredvid. Det är mycket snabbare att lära sig frågespråket där än inifrån ett program ni samtidigt felsöker.

Den vanligaste fällan

Att öppna porten mot internet. En Elasticsearch som är nåbar utifrån är ett av de vanligaste sätten som databaser läcker ut, och det finns sökmotorer vars enda uppgift är att hitta öppna instanser. Har ni riktiga kunduppgifter inne är det en incident som ska anmälas, inte ett tekniskt missöde.

Låt den därför lyssna bara på den egna datorn medan ni utvecklar, vilket den gör som standard, och ändra inte på det utan att först ha satt lösenord och certifikat på plats.

Den andra halvan handlar om pengar. Installationen ovan ger en provlicens på en månad med alla funktioner påslagna. När den går ut fortsätter grundfunktionerna att fungera gratis, men en del av det ni hunnit vänja er vid slutar göra det. Bygg därför på de funktioner ni vet finns kvar, och kolla villkoren hos elastic.co innan ni förlitar er på något som ser gratis ut.