-- pro zprovozneni elastic search lokalne (doporucuji) -- bud se podivejte na materialy dr Lastovicky -- nebo pomoci dockeru: --prikaz pro docker docker run -d \ --name elasticsearch \ -p 9200:9200 \ -p 9300:9300 \ -e "discovery.type=single-node" \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ docker.elastic.co/elasticsearch/elasticsearch:8.11.2 -- kontorla funkcnosti curlem curl -X GET "localhost:9200/" -- pro dotazovani pouzivame HTTP pozadavky - lze napriklad - curlem - rest klientem (podman atd) - doplnkem v IDE --tokeny dokumentu curl -X POST "localhost:9200/_analyze" -H "Content-Type: application/json" \ -d '{ "analyzer": "standard", "text": "Nejlepší televize na světě" }' -- novy prazdny index curl -X PUT "localhost:9200/prazdny" -- novy prazdny index -- nepovinna specifikace schematu curl -X PUT "localhost:9200/products" -H "Content-Type: application/json" \ -d '{ "mappings": { "properties": { "name": { "type": "text" }, "description": { "type": "text" }, "price": { "type": "float" }, "category": { "type": "keyword" } } } }' -- pridaní dokumentu do indexu curl -X PUT "localhost:9200/products/_doc/1" -H "Content-Type: application/json" \ -d '{ "name": "Smartphone XYZ", "description": "Nový smartphone s OLED displejem a 128GB pamětí", "price": 14999, "category": "electronics" }' -- lze i s POST (pripadne automaticky generuje ID) curl -X POST "localhost:9200/products/_doc/2" -H "Content-Type: application/json" \ -d '{ "name": "Laptop ABC", "description": "Výkonný notebook s procesorem Intel i7 a 16GB RAM", "price": 24999, "category": "electronics" }' curl -X POST "localhost:9200/products/_doc/3" -H "Content-Type: application/json" \ -d '{ "name": "Kávovar SuperBrew", "description": "Automatický kávovar s mlýnkem a funkcí cappuccino", "price": 6999, "category": "kitchen" }' -- ziskani dokumentu curl -X GET "localhost:9200/products/_doc/1" -- uprava jiz vytvoreneho dokumentu curl -X POST "localhost:9200/products/_update/1" -H "Content-Type: application/json" \ -d '{ "doc": { "price": 13999, "description": "Nový smartphone s OLED displejem a 128GB pamětí, nyní se slevou" } }' -- ziskani dokumentu curl -X GET "localhost:9200/products/_doc/1" -- smazani dokumentu curl -X DELETE "localhost:9200/products/_doc/3" -- ziskani dokumentu (smazaneho) curl -X GET "localhost:9200/products/_doc/3" -- smazani celeho indexu curl -X DELETE "localhost:9200/products" -- testovaci data curl -X PUT "localhost:9200/products/_doc/1" -H "Content-Type: application/json" \ -d '{ "name": "Smartphone XYZ", "description": "Nový smartphone s OLED displejem a 128GB pamětí", "price": 14999, "category": "electronics" }' -- lze i s POST (pripadne automaticky generuje ID) curl -X POST "localhost:9200/products/_doc/2" -H "Content-Type: application/json" \ -d '{ "name": "Laptop ABC", "description": "Výkonný notebook s procesorem Intel i7 a 16GB RAM", "price": 24999, "category": "electronics" }' curl -X POST "localhost:9200/products/_doc/3" -H "Content-Type: application/json" \ -d '{ "name": "Kávovar SuperBrew", "description": "Automatický kávovar s mlýnkem a funkcí cappuccino", "price": 6999, "category": "kitchen" }' -- priapdne (_bulk umoznuje specifikovat vice operaci najednou) curl -X POST "localhost:9200/products/_bulk" -H "Content-Type: application/json" \ -d '{ "index": { "_id": 4 } } { "name": "Sluchátka BassPro", "description": "Bezdrátová sluchátka s výborným basovým projevem", "price": 1999, "category": "electronics" } { "index": { "_id": 5 } } { "name": "Mikrovlnná trouba HotWave", "description": "Mikrovlnná trouba s grilem a funkcí rozmrazování", "price": 2999, "category": "kitchen" } ' -- fultextove vyhledavani -- restirkce a podminky curl -X GET "localhost:9200/products/_search" -H "Content-Type: application/json" \ -d '{ "query": { "bool": { "must": [ { "match": { "description": "smartphone" } }, { "match": { "description": "OLED" } } ] } } }' curl -X GET "localhost:9200/products/_search" -H "Content-Type: application/json" \ -d '{ "query": { "bool": { "must": [ { "match": { "description": "notebook" } } ], "must_not": [ { "match": { "description": "Intel i5" } } ], "should": [ { "match": { "description": "RAM" } }, { "match": { "description": "SSD" } } ] } } }' -- dotaz s multi-match - vyhledava pres vice poli/atributu curl -X GET "localhost:9200/products/_search" -H "Content-Type: application/json" \ -d '{ "query": { "multi_match": { "query": "notebook Intel i7", "fields": ["name", "description"] } } }' -- dotaz s explain curl -X GET "localhost:9200/products/_search" -H "Content-Type: application/json" \ -d '{ "query": { "match": { "description": "OLED smartphone" } }, "explain": true }'