====== belangrijke_concepten======
[[elk_stack:elk_stack|{{ :elk_stack:icon.jpg?120|}}]]
===== context=====
dit document beschrijft enkele belangrijke_concepten van ELK stack
===== veld (field) =====
* kleinste data eenheid in ELK
* volledig aanpasbaar, vb: auteur, datum, samenvatting, ...
* elk veld heeft 1 **data type**: string, number, date, boolean, geolocation, ...)
* elk veld bevat 1 blokje data
==== multi-fields ====
* dienen op meer dan 1 manier geindexeerd te worden om beter doorzoekbaar te zijn
* zo kan data geindexeerd worden als string en keywoord
==== meta-fields ====
* bevatten metadata van een document
===== documenten =====
* JSON objecten in ES index
* basis eenheid van storage, vergelijkbaar met een rij in een databank
* bevat velden die uit een key/value paar bestaan
- key: naam van het veld
- value: waarde (string, keyword, number, ...)
* bevat tevens metadata, eigen aan het document
===== mapping =====
* vergelijkbaar met een __schema__ voor een databank.
* bevat de verschillende types die in een index zitten
* definieert de velden voor documenten van een specifiek type en hoe deze moeten geindexeerd worden
* voorbeeld: # Example
curl -XPUT localhost:9200/example -d '{
"mappings": {
"mytype": {
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "long"
}
}
}
}
}'
===== Index =====
* logische partitie met documenten, vergelijkbaar met een databank
* je kan meerdere indexen hebben (vb 1 voor produkten, 1 voor klanten, ...)
* net als in een boek, is een boek een mapping tussen een woord en de plaats waar het voorkomt in het boek: Tomato chutney……………………page 645
Tomato soup…………………………page 23, 78
Umami burger…………………………page 378
* search engines werken op een vergelijkbare manier: zoekresultaten geven je weer waar een woord/zin voorkomt.
* eerste stap in aanmaken van index, is **document parsing/processing**:
* documenten worden doorzocht
* lijst wordt opgemaakt van woorden (**terms**) die in het doc voorkomen
* reference (mapping) wordt gemaakt die wijst naar de documenten waarin de term voorkomt.
* deze indexen worden op disk bewaard, zodat die later gebruikt kunnen worden bij zoekactie.
===== tokenization =====
* proces waarbij betekenis wordt gezocht in raw data ne deze wordt opgedeeld in betekenisvolle chunks
* vergelijkbaar met hoe we tekst opdelen in zinnen en zinnen in woorden.
* er bestaan verschillende tokenizers (camelcase, URL, path) die tekst herkennen.
===== shards =====
* is een Lucene index
* belangrijkste oorzaak van ES crashes, is te grote indexes
* shards splisten indexen op in delen, die je over verschillende servers kan benaderen.
===== replicas =====
* kopie van een index shard, gebruikt om een restore te doen
* kunnen ook gebruikt worden als read-only om performantie te verbeteren
===== analyzers =====
* zetten data om in terms, tijdens indexering
* Standard Analyzer en Simple Analyzer
* aangevuld met filters
===== meer info =====
voeg hier linken toe naar verdere uitleg
{{tag>elk_stack}}