Elasticsearch
SøgningDistribueret søge- og analysemotor bygget på Apache Lucene til fuldtekstsøgning og loganalyse.
Beskrivelse
Elasticsearch er en kraftfuld distribueret søge- og analysemotor der udmærker sig ved fuldtekstsøgning, struktureret søgning og realtidsanalyser. Bygget på Apache Lucene gemmer den data som JSON-dokumenter og bruger inverterede indekser for lynhurtig tekstsøgning. Elasticsearch er kernen i ELK Stack (Elasticsearch, Logstash, Kibana) der bruges til logaggregering og visualisering. Den kan håndtere petabytes af data fordelt på mange noder og skalerer horisontalt ved at distribuere indekser på tværs af shards. Med funktioner som fuzzy-søgning, autofuldførelse, facetteret søgning, geospatiale forespørgsler og aggregeringer er Elasticsearch valget for enterprise-søgning, e-handelsprodukt-søgning, sikkerhedsanalyser og observerbarhed. Firmaer som GitHub, Netflix, Stack Overflow og Uber bruger Elasticsearch til at søge gennem massive datasæt i realtid.
Features
- •Distribueret arkitektur med sharding
- •Realtidsindeksering og søgning
- •Fuldtekstsøgning med relevansscore
- •Kraftfuldt aggregeringsframework
- •Geospatiale forespørgsler
- •Autofuldførelse og forslag
- •Maskinlæringsbaseret anomalidetektion
- •RESTful JSON-API
Query Eksempel
// Indekser et dokument
PUT /products/_doc/1
{
"name": "Trådløse hovedtelefoner",
"description": "Premium støjreducerende hovedtelefoner med Bluetooth",
"price": 1299,
"category": "Elektronik",
"brand": "Sony",
"tags": ["audio", "wireless", "bluetooth"],
"in_stock": true
}
// Fuldtekstsøgning
GET /products/_search
{
"query": {
"match": {
"description": "bluetooth hovedtelefoner"
}
}
}
// Avanceret forespørgsel med filtre og aggregeringer
GET /products/_search
{
"query": {
"bool": {
"must": [
{ "match": { "description": "hovedtelefoner" } }
],
"filter": [
{ "term": { "in_stock": true } },
{ "range": { "price": { "lte": 2000 } } }
]
}
},
"aggs": {
"brands": {
"terms": { "field": "brand.keyword" }
},
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{ "to": 500 },
{ "from": 500, "to": 1500 },
{ "from": 1500 }
]
}
}
}
}Anvendelsesområder
- •Fuldtekstsøgning på websites og applikationer
- •Logaggregering og analyse (ELK-stak)
- •E-handelsprodukt-søgning med facetter
- •Sikkerhedsanalyser og trusselsdetektion
- •Application Performance Monitoring (APM)
Fordele
- ✓Ekstremt hurtig fuldtekstsøgning
- ✓Horisontal skalering til massive datasæt
- ✓Realtidsindeksering og opdateringer
- ✓Rigt forespørgsels-DSL
- ✓Integration med Kibana til visualisering
Ulemper
- ✗Højt hukommelses- og ressourceforbrug
- ✗Kompleks at konfigurere og tune
- ✗Ikke ACID-kompatibel
- ✗Stejl indlæringskurve
- ✗Licens ændret til SSPL (ikke ægte open source)
Bedst til
- →Fuldtekstsøgningsapplikationer
- →Log- og hændelsesdataanalyse
- →E-handelssøgning og filtrering
- →Business intelligence-dashboards
- →Realtidsovervågning og alarmer
Ikke anbefalet til
- ⚠Primær transaktionsdatabase
- ⚠Strenge ACID-krav
- ⚠Simple nøgle-værdi-opslag
- ⚠Små datasæt (overkill)
- ⚠Ressourcebegrænsede miljøer