Elasticsearch
SøgningDistribueret search og analytics engine bygget på Apache Lucene til full-text search og log analysis.
Beskrivelse
Elasticsearch er en kraftfuld distributed search og analytics engine der excellerer ved full-text search, structured search og real-time analytics. Bygget på Apache Lucene, gemmer den data som JSON documents og bruger inverted indices for lynhurtig text search. Elasticsearch er kernen i ELK Stack (Elasticsearch, Logstash, Kibana) der bruges til log aggregation og visualization. Den kan håndtere petabytes af data fordelt på mange nodes og skalerer horisontalt ved at distribuere indices på tværs af shards. Med features som fuzzy search, auto-complete, faceted search, geospatial queries og aggregations, er Elasticsearch valget for enterprise search, e-commerce product search, security analytics og observability. Firmaer som GitHub, Netflix, Stack Overflow og Uber bruger Elasticsearch til at søge gennem massive datasets i real-time.
Features
- •Distribueret architecture med sharding
- •Real-time indexing og search
- •Full-text search med relevance scoring
- •Powerful aggregations framework
- •Geospatial queries
- •Auto-complete og suggestions
- •Machine learning anomaly detection
- •RESTful JSON API
Query Eksempel
// Index et document
PUT /products/_doc/1
{
"name": "Trådløse hovedtelefoner",
"description": "Premium noise-cancelling hovedtelefoner med Bluetooth",
"price": 1299,
"category": "Elektronik",
"brand": "Sony",
"tags": ["audio", "wireless", "bluetooth"],
"in_stock": true
}
// Full-text search
GET /products/_search
{
"query": {
"match": {
"description": "bluetooth hovedtelefoner"
}
}
}
// Advanced query med filters og aggregations
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
- •Full-text search på websites og applikationer
- •Log aggregation og analysis (ELK stack)
- •E-commerce product search med facets
- •Security analytics og threat detection
- •Application Performance Monitoring (APM)
Fordele
- ✓Ekstremt hurtig full-text search
- ✓Horizontal skalering til massive datasets
- ✓Real-time indexing og updates
- ✓Rich query DSL
- ✓Integration med Kibana for visualization
Ulemper
- ✗Høj memory og resource consumption
- ✗Kompleks at konfigurere og tune
- ✗Ikke ACID compliant
- ✗Steep learning curve
- ✗Licens ændrede til SSPL (ikke ægte open-source)
Bedst til
- →Full-text search applikationer
- →Log og event data analysis
- →E-commerce search og filtering
- →Business intelligence dashboards
- →Real-time monitoring og alerting
Ikke anbefalet til
- ⚠Primary transactional database
- ⚠Strict ACID requirements
- ⚠Simple key-value lookups
- ⚠Small datasets (overkill)
- ⚠Ressource-begrænsede environments