What’s new in the Elastic Stack 8

A presentation at Elastic Meetup in April 2022 in by Alexander Reelsen

Slide 1

Slide 1

What’s new in the Elastic Stack? 8.x edition & AMA Philipp Krenn | @xeraa Alexander Reelsen | @spinscale

Slide 2

Slide 2

Late 7.x Observability: Google Cloud Logs Integration, User Experience & Synthetic Monitoring Enterprise Search: Kibana Integration, Crawler Security: Osquery integration Stack: Runtime fields & Searchable Snapshots

Slide 3

Slide 3

8.x Observability: CI/CD, AWS Lambda visibility Enterprise Search: SharePoint Connector Stack: Security on by default, ANN & NLP, Field usage & Disk usage APIs, Lucene 9 Geo: Hex tiles, Vector tiles ARM support

Slide 4

Slide 4

Observability CI/CD

Slide 5

Slide 5

Security-on-by-default Whole stack! TLS Authorization + Authentication Running with Testcontainers

Slide 6

Slide 6

knn search Using dense_vector fields for efficient vector search HNSW (Hierarchical Navigable Small World) 8.2 : Filtering support Attention: Dedicated endpoint!

Slide 7

Slide 7

NLP - Language detection POST _ingest/pipeline/_simulate { “pipeline”: { “processors”: [ { “inference”: { “model_id”: “lang_ident_model_1”, “inference_config”: { “classification”: {} } } } ] }, “docs”: [ { “_source”: { “text”: “This is an english text, albeit rather short.” } }, { “_source”: { “text”: “Bitte melden Sie sich schnellstmöglich bei uns. Wir sind jederzeit telefonisch zu erreichen.” } } ] }

Slide 8

Slide 8

NLP - Language detection { } “docs” : [ { “doc” : { “_source” : { “text” : “This is an english text, albeit rather short.”, “ml” : { “inference” : { “prediction_score” : 0.997576998993641, “model_id” : “lang_ident_model_1”, “prediction_probability” : 0.997576998993641, “predicted_value” : “en” } } } } }, { “doc” : { “_source” : { “text” : “Bitte melden Sie sich schnellstmöglich bei uns. Wir sind jederzeit telefonisch zu erreichen.”, “ml” : { “inference” : { “prediction_score” : 0.9999990788535671, “model_id” : “lang_ident_model_1”, “prediction_probability” : 0.9999990788535671, “predicted_value” : “de” } } } } } ]

Slide 9

Slide 9

NLP - Named Entity Recognition # sentence transformers require cmake pip3 install eland tqdm torch transformers sentence_transformers ~/Library/Python/3.8/bin/eland_import_hub_model \ —url “https://elastic:s3cr3t@my-elasticsearch-endpoint.europe-west3.gcp.cloud.es.io:9243” \ —hub-model-id elastic/distilbert-base-cased-finetuned-conll03-english \ —task-type ner \ —start

Slide 10

Slide 10

NLP - Named Entity Recognition POST _ingest/pipeline/_simulate { “pipeline”: { “processors”: [ { “inference”: { “model_id”: “elastic__distilbert-base-cased-finetuned-conll03-english”, “inference_config”: { “ner”: { } } } } ] }, “docs”: [ { “_source”: { “text_field”: “I’ve been living in Munich for 15 years.” } }, { “_source”: { “text_field”: “One of the nicest places in Munich is the Englischer Garten.” } }, { “_source”: { “text_field”: “Been working at Elastic for more than 9 years.” } } ] }

Slide 11

Slide 11

{ } NLP - Named Entity Recognition “doc” : { “_index” : “_index”, “_id” : “_id”, “_source” : { “text_field” : “I’ve been living in Munich for 15 years.”, “ml” : { “inference” : { “model_id” : “elastic__distilbert-base-cased-finetuned-conll03-english”, “entities” : [ { “start_pos” : 20, “end_pos” : 26, “class_name” : “LOC”, “class_probability” : 0.9992382591441749, “entity” : “Munich” } ], “predicted_value” : “I’ve been living in Munich for 15 years.” } } } }

Slide 12

Slide 12

NLP - Named Entity Recognition { } “doc” : { “_index” : “_index”, “_id” : “_id”, “_source” : { “text_field” : “One of the nicest places in Munich is the Englischer Garten.”, “ml” : { “inference” : { “model_id” : “elastic__distilbert-base-cased-finetuned-conll03-english”, “entities” : [ { “start_pos” : 28, “end_pos” : 34, “class_name” : “LOC”, “class_probability” : 0.9993211907123687, “entity” : “Munich” }, { “start_pos” : 42, “end_pos” : 59, “class_name” : “ORG”, “class_probability” : 0.9521962770340935, “entity” : “Englischer Garten” } ], “predicted_value” : “One of the nicest places in Munich is the Englischer Garten.” } } } }

Slide 13

Slide 13

NLP - Named Entity Recognition { } “doc” : { “_index” : “_index”, “_id” : “_id”, “_source” : { “text_field” : “Been working at Elastic for more than 9 years.”, “ml” : { “inference” : { “model_id” : “elastic__distilbert-base-cased-finetuned-conll03-english”, “entities” : [ { “start_pos” : 16, “end_pos” : 23, “class_name” : “ORG”, “class_probability” : 0.9996217159395848, “entity” : “Elastic” } ], “predicted_value” : “Been working at Elastic for more than 9 years.” } } } }

Slide 14

Slide 14

More NLP… Check out the annotated text field type for the predicted_value field Check out the third party model documentation

Slide 15

Slide 15

Upgrade Assistant

Slide 16

Slide 16

Upgrade Assistant

Slide 17

Slide 17

Elasticsearch Java Client Created from spec like all other clients Also exists for 7.x allowing for smooth migration.

Slide 18

Slide 18

Terraform Provider Elastic Cloud Provider Elasticstack Provider

Slide 19

Slide 19

Terraform Provider resource “ec_deployment” “spring-boot-app-search” { name = “spring-boot-app-search” region = “azure-westeurope” version = “8.1.0” deployment_template_id = “azure-memory-optimized” elasticsearch {} kibana {} integrations_server {} enterprise_search {} }

Slide 20

Slide 20

What’s next ANN search filtering Lookup runtime fields doc-values only fields (for more efficient searchable snapshots) random sampler aggregation

Slide 21

Slide 21

Thanks for listening! Q&A Philipp Krenn | @xeraa Alexander Reelsen | @spinscale