SlideShare a Scribd company logo
1 of 56
Download to read offline
Java Clients for
Florian Hopf
@fhopf
elasticsearch
Elasticsearch?
„Elasticsearch is a distributed,
JSON-based search and
analytics engine, designed for
horizontal scalability,
maximum reliability, and easy
management.“
Elasticsearch?
„Elasticsearch is a distributed,
JSON-based search and
analytics engine, designed for
horizontal scalability,
maximum reliability, and easy
management.“
Elasticsearch?
Installation
# download archive
wget https://artifacts.elastic.co/downloads/
elasticsearch/elasticsearch-5.0.0.zip
unzip elasticsearch-5.0.0.zip
# on windows: elasticsearch.bat
elasticsearch-5.0.0/bin/elasticsearch
Accessing Elaticsearch
curl -XGET "http://localhost:9200"
{
"name" : "LI8ZN-t",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "UvbMAoJ8TieUqugCGw7Xrw",
"version" : {
"number" : "5.0.0",
"build_hash" : "253032b",
"build_date" : "2016-10-26T04:37:51.531Z",
"build_snapshot" : false,
"lucene_version" : "6.2.0"
},
"tagline" : "You Know, for Search"
}
Indexing
curl -XPOST "http://localhost:9200/food/dish" -d'
{
"food": "Hainanese Chicken Rice",
"tags": ["chicken", "rice"],
"favorite": {
"location": "Tian Tian",
"price": 5.00
}
}'
Indexing
curl -XPOST "http://localhost:9200/food/dish" -d'
{
"food": "Ayam Penyet",
"tags": ["chicken", "indonesian"],
"spicy": true
}'
Search
curl -XGET
"http://localhost:9200/food/dish/_search?q=chicken"
...
{"total":2,"max_score":0.3666863,"hits":
[{"_index":"food","_type":"dish","_id":"AVg9cMwARrBlrY9
tYBqX","_score":0.3666863,"_source":
{
"food": "Hainanese Chicken Rice",
"tags": ["chicken", "rice"],
"favorite": {
"location": "Tian Tian",
"price": 5.00
}
}},
...
Search using Query DSL
curl -XPOST "http://localhost:9200/food/dish/_search" -d'
{
"query": {
"bool": {
"must": {
"match": {
"_all": "rice"
}
},
"filter": {
"term": {
"tags.keyword": "chicken"
}
}
}
}
}'
Elasticsearch?
„Elasticsearch is a distributed,
JSON-based search and
analytics engine, designed for
horizontal scalability,
maximum reliability, and
easy management.“
Distributed
Distributed
Recap
●
Java based search server
●
HTTP and JSON
●
Search and Filtering Query-DSL
●
Faceting, Highlighting, Suggestions, …
●
Nodes can form a cluster
Transport-Client
Transport-Client
dependencies {
compile group: 'org.elasticsearch.client',
name: 'transport',
version: '5.0.0'
}
Transport-Client
TransportAddress address =
new InetSocketTransportAddress(
InetAddress.getByName("localhost"), 9300);
Client client = new PreBuiltTransportClient(Settings.EMPTY)
addTransportAddress(address);
Search using Query DSL
curl -XPOST "http://localhost:9200/food/dish/_search" -d'
{
"query": {
"bool": {
"must": {
"match": {
"_all": "rice"
}
},
"filter": {
"term": {
"tags.keyword": "chicken"
}
}
}
}
}'
Search using Search Builders
SearchResponse searchResponse = client
.prepareSearch("food")
.setQuery(
boolQuery().
must(matchQuery("_all", "rice")).
filter(
termQuery("tags.keyword", "chicken")))
.execute().actionGet();
assertEquals(1, searchResponse.getHits().getTotalHits());
SearchHit hit = searchResponse.getHits().getAt(0);
String food = hit.getSource().get("food").toString();
Indexing
XContentBuilder builder = jsonBuilder()
.startObject()
.field("food", "Roti Prata")
.array("tags", new String [] {"curry"})
.startObject("favorite")
.field("location", "Tiong Bahru")
.field("price", 2.00)
.endObject()
.endObject();
IndexResponse resp = client.prepareIndex("food","dish")
.setSource(builder)
.execute()
.actionGet();
Indexing
Transport-Client
●
Connects to an existing cluster
●
Uses the binary protocol also used for inter
cluster communication
Transport-Client
Sniffing
Sniffing
●
State of the cluster can be requested from
elasticsearch
●
Client side loadbalancing
TransportAddress address =
new InetSocketTransportAddress(
InetAddress.getByName("localhost"), 9300);
Settings settings = Settings.builder()
.put("client.transport.sniff", true)
.build();
Client client = new PreBuiltTransportClient(settings)
addTransportAddress(address);
Transport-Client
●
Full API-Support
●
Efficient communication
●
Client side loadbalancing
Transport-Client Gotchas
●
Compatibility between elasticsearch versions
●
Elasticsearch dependency
REST-Client
Elasticsearch 5 REST-Client
Elasticsearch 5 REST-Client
dependencies {
compile group: 'org.elasticsearch.client',
name: 'rest',
version: '5.0.0'
}
Elasticsearch 5 REST-Client
+--- org.apache.httpcomponents:httpclient:4.5.2
+--- org.apache.httpcomponents:httpcore:4.4.5
+--- org.apache.httpcomponents:httpasyncclient:4.1.2
+--- org.apache.httpcomponents:httpcore-nio:4.4.5
+--- commons-codec:commons-codec:1.10
--- commons-logging:commons-logging:1.1.3
Elasticsearch 5 REST-Client
RestClient restClient = RestClient.builder(
new HttpHost("localhost", 9200, "http"),
new HttpHost("localhost", 9201, "http")).build();
Elasticsearch 5 REST-Client
HttpEntity entity = new NStringEntity(
"{ "query": { "match_all": {}}}",
ContentType.APPLICATION_JSON);
// alternative: performRequestAsync
Response response = restClient.performRequest("POST",
"/_search", emptyMap(), entity);
String json = toString(response.getEntity());
// ...
Elasticsearch 5 REST-Client
●
Less dependent on elasticsearch version
●
Clean separation network application/cluster
●
Minimal dependency
●
Sniffing
●
Error handling, timeout config, basic auth,
headers, …
●
No query support (for now)
Jest – Http Client
Jest
dependencies {
compile group: 'io.searchbox',
name: 'jest',
version: '2.0.0'
}
Client
JestClientFactory factory = new JestClientFactory();
factory.setHttpClientConfig(new HttpClientConfig
.Builder("http://localhost:9200")
.multiThreaded(true)
.build());
JestClient client = factory.getObject();
Searching Jest
String query = jsonStringThatMagicallyAppears;
Search search = new Search.Builder(query)
.addIndex("library")
.build();
SearchResult result = client.execute(search);
assertEquals(Integer.valueOf(1), result.getTotal());
Searching Jest
JsonObject jsonObject = result.getJsonObject();
JsonObject hitsObj = jsonObject.getAsJsonObject("hits");
JsonArray hits = hitsObj.getAsJsonArray("hits");
JsonObject hit = hits.get(0).getAsJsonObject();
// ... more boring code
Searching Jest
public class Dish {
private String food;
private List<String> tags;
private Favorite favorite;
@JestId
private String id;
// ... getters and setters
}
Suche mit Jest
Dish dish = result.getFirstHit(Dish.class).source;
assertEquals("Roti Prata", dish.getFood());
Jest
●
Alternative HTTP implementation
●
Queries as Strings or via Elasticsearch-Builder
●
Indexing and searching Java beans
●
Node Discovery
Spring Data Elasticsearch
Spring Data
●
Abstractions for different data stores
●
Speciality of each store available
●
Dynamic Repository implementations
●
Popular modules
●
Spring Data JPA
●
Spring Data MongoDB
Dependency
dependencies {
compile group: 'org.springframework.data',
name: 'spring-data-elasticsearch',
version: '2.0.4.RELEASE'
}
Entity
@Document(indexName = "spring_dish")
public class Dish {
@Id
private String id;
private String food;
private List<String> tags;
private Favorite favorite;
// more code
}
Repository
public interface DishRepository
extends ElasticsearchCrudRepository<Dish, String> {
}
Configuration
<elasticsearch:transport-client id="client" />
<bean name="elasticsearchTemplate"
class="o.s.d.elasticsearch.core.ElasticsearchTemplate">
<constructor-arg name="client" ref="client"/>
</bean>
<elasticsearch:repositories
base-package="de.fhopf.elasticsearch.springdata" />
Indexing
Dish mie = new Dish();
mie.setId("hokkien-prawn-mie");
mie.setFood("Hokkien Prawn Mie");
mie.setTags(Arrays.asList("noodles", "prawn"));
repository.save(Arrays.asList(hokkienPrawnMie));
Searching
Iterable<Dish> dishes = repository.findAll();
Dish dish = repository.findOne("hokkien-prawn-mie");
Repository
public interface DishRepository
extends ElasticsearchCrudRepository<Dish, String> {
List<Dish> findByFood(String food);
List<Dish> findByTagsAndFavoriteLocation(String tag,
String location);
List<Dish> findByFavoritePriceLessThan(Double price);
@Query("{"query": {"match_all": {}}}")
List<Dish> customFindAll();
}
Recap
●
High level abstraction
●
Entity beans
●
dynamic repository implementation
●
HTTP support in the making
●
Slower feature development
Recap
●
Transport-Client
●
Full API support
●
Elasticsearch dependency
●
REST-Client
●
Uses HTTP
●
currently lacking search API
Recap
●
Jest
●
Http client
●
Support for Java beans
●
Spring-Data-Elasticsearch
●
High level abstraction
●
Dynamic repositories
Links
●
http://elastic.co
●
https://github.com/searchbox-io/Jest
●
https://github.com/spring-projects/spring-
data-elasticsearch
●
https://github.com/fhopf/singajug-examples
●
http://blog.florian-hopf.de

More Related Content

What's hot

How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
琛琳 饶
 
mongoDB Performance
mongoDB PerformancemongoDB Performance
mongoDB Performance
Moshe Kaplan
 
Concurrency Patterns with MongoDB
Concurrency Patterns with MongoDBConcurrency Patterns with MongoDB
Concurrency Patterns with MongoDB
Yann Cluchey
 

What's hot (20)

Voxxed Athens 2018 - Elasticsearch (R)Evolution — You Know, for Search...
Voxxed Athens 2018 - Elasticsearch (R)Evolution — You Know, for Search...Voxxed Athens 2018 - Elasticsearch (R)Evolution — You Know, for Search...
Voxxed Athens 2018 - Elasticsearch (R)Evolution — You Know, for Search...
 
Journée DevOps : Des dashboards pour tous avec ElasticSearch, Logstash et Kibana
Journée DevOps : Des dashboards pour tous avec ElasticSearch, Logstash et KibanaJournée DevOps : Des dashboards pour tous avec ElasticSearch, Logstash et Kibana
Journée DevOps : Des dashboards pour tous avec ElasticSearch, Logstash et Kibana
 
«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub«Scrapy internals» Александр Сибиряков, Scrapinghub
«Scrapy internals» Александр Сибиряков, Scrapinghub
 
Mobile Analytics mit Elasticsearch und Kibana
Mobile Analytics mit Elasticsearch und KibanaMobile Analytics mit Elasticsearch und Kibana
Mobile Analytics mit Elasticsearch und Kibana
 
Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.Null Bachaav - May 07 Attack Monitoring workshop.
Null Bachaav - May 07 Attack Monitoring workshop.
 
Elasticsearch Distributed search & analytics on BigData made easy
Elasticsearch Distributed search & analytics on BigData made easyElasticsearch Distributed search & analytics on BigData made easy
Elasticsearch Distributed search & analytics on BigData made easy
 
Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)
 
Building a CRM on top of ElasticSearch
Building a CRM on top of ElasticSearchBuilding a CRM on top of ElasticSearch
Building a CRM on top of ElasticSearch
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
 
Elk stack
Elk stackElk stack
Elk stack
 
mongoDB Performance
mongoDB PerformancemongoDB Performance
mongoDB Performance
 
Attack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and KibanaAttack monitoring using ElasticSearch Logstash and Kibana
Attack monitoring using ElasticSearch Logstash and Kibana
 
Docker Monitoring Webinar
Docker Monitoring  WebinarDocker Monitoring  Webinar
Docker Monitoring Webinar
 
ELK Stack
ELK StackELK Stack
ELK Stack
 
Eagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational AwarenessEagle6 Enterprise Situational Awareness
Eagle6 Enterprise Situational Awareness
 
MySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELKMySQL Slow Query log Monitoring using Beats & ELK
MySQL Slow Query log Monitoring using Beats & ELK
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Concurrency Patterns with MongoDB
Concurrency Patterns with MongoDBConcurrency Patterns with MongoDB
Concurrency Patterns with MongoDB
 
Unity Makes Strength
Unity Makes StrengthUnity Makes Strength
Unity Makes Strength
 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning Elasticsearch
 

Viewers also liked

26. TCI Cost of Living Spotlight Report 2011
26. TCI Cost of Living Spotlight Report 201126. TCI Cost of Living Spotlight Report 2011
26. TCI Cost of Living Spotlight Report 2011
Richard Plumpton
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
Cel Koh
 
Wo tcommunity proposal
Wo tcommunity proposalWo tcommunity proposal
Wo tcommunity proposal
Campus Tang
 
04. TCI Future Prosperity 2050 (2)
04. TCI Future Prosperity 2050 (2)04. TCI Future Prosperity 2050 (2)
04. TCI Future Prosperity 2050 (2)
Richard Plumpton
 
TCI_DangerousDegrees_print
TCI_DangerousDegrees_printTCI_DangerousDegrees_print
TCI_DangerousDegrees_print
Richard Plumpton
 
Aemfi and the microfinance sector
Aemfi and the microfinance sectorAemfi and the microfinance sector
Aemfi and the microfinance sector
shree kant kumar
 

Viewers also liked (20)

Speak Easy, Achieve More!
Speak Easy, Achieve More!Speak Easy, Achieve More!
Speak Easy, Achieve More!
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
Job Search Simulation
Job Search SimulationJob Search Simulation
Job Search Simulation
 
Performance Indicators for Bangladeshi People
Performance Indicators for Bangladeshi PeoplePerformance Indicators for Bangladeshi People
Performance Indicators for Bangladeshi People
 
26. TCI Cost of Living Spotlight Report 2011
26. TCI Cost of Living Spotlight Report 201126. TCI Cost of Living Spotlight Report 2011
26. TCI Cost of Living Spotlight Report 2011
 
How video views are counted on Facebook, Snapchat and other Social Networks
How video views are counted on Facebook, Snapchat and other Social NetworksHow video views are counted on Facebook, Snapchat and other Social Networks
How video views are counted on Facebook, Snapchat and other Social Networks
 
Adj new
Adj newAdj new
Adj new
 
Where We End
Where We EndWhere We End
Where We End
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
Wo tcommunity proposal
Wo tcommunity proposalWo tcommunity proposal
Wo tcommunity proposal
 
04. TCI Future Prosperity 2050 (2)
04. TCI Future Prosperity 2050 (2)04. TCI Future Prosperity 2050 (2)
04. TCI Future Prosperity 2050 (2)
 
Embarazo precoz
Embarazo precozEmbarazo precoz
Embarazo precoz
 
TCI_DangerousDegrees_print
TCI_DangerousDegrees_printTCI_DangerousDegrees_print
TCI_DangerousDegrees_print
 
Sandrine debetaz
Sandrine debetazSandrine debetaz
Sandrine debetaz
 
โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์โครงงานคอมพิวเตอร์
โครงงานคอมพิวเตอร์
 
Leadership Templates
Leadership TemplatesLeadership Templates
Leadership Templates
 
What time is it
What  time  is  itWhat  time  is  it
What time is it
 
Who am I?
Who am I?Who am I?
Who am I?
 
Aemfi and the microfinance sector
Aemfi and the microfinance sectorAemfi and the microfinance sector
Aemfi and the microfinance sector
 
Streaming architecture zx_dec2015
Streaming architecture zx_dec2015Streaming architecture zx_dec2015
Streaming architecture zx_dec2015
 

Similar to Java clients for elasticsearch

Similar to Java clients for elasticsearch (20)

Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
Using ElasticSearch as a fast, flexible, and scalable solution to search occu...
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
 
Infrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with GitInfrastructure as Code: Manage your Architecture with Git
Infrastructure as Code: Manage your Architecture with Git
 
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleMonitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
 
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten ZiegelerMonitoring OSGi Applications with the Web Console - Carsten Ziegeler
Monitoring OSGi Applications with the Web Console - Carsten Ziegeler
 
Monitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web ConsoleMonitoring OSGi Applications with the Web Console
Monitoring OSGi Applications with the Web Console
 
OpenStack APIs: Present and Future (Beta Talk)
OpenStack APIs: Present and Future (Beta Talk)OpenStack APIs: Present and Future (Beta Talk)
OpenStack APIs: Present and Future (Beta Talk)
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
REST in Peace
REST in PeaceREST in Peace
REST in Peace
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
Introduction to Apache Camel
Introduction to Apache CamelIntroduction to Apache Camel
Introduction to Apache Camel
 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
 
Synapseindia dot net development web applications with ajax
Synapseindia dot net development  web applications with ajaxSynapseindia dot net development  web applications with ajax
Synapseindia dot net development web applications with ajax
 
Android and REST
Android and RESTAndroid and REST
Android and REST
 
vJUG - The JavaFX Ecosystem
vJUG - The JavaFX EcosystemvJUG - The JavaFX Ecosystem
vJUG - The JavaFX Ecosystem
 
how to use openstack api
how to use openstack apihow to use openstack api
how to use openstack api
 
Log analysis with elastic stack
Log analysis with elastic stackLog analysis with elastic stack
Log analysis with elastic stack
 
Streaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & ElasticsearchStreaming using Kafka Flink & Elasticsearch
Streaming using Kafka Flink & Elasticsearch
 
Whats new in ASP.NET 4.0
Whats new in ASP.NET 4.0Whats new in ASP.NET 4.0
Whats new in ASP.NET 4.0
 
Azure Powershell Tips
Azure Powershell TipsAzure Powershell Tips
Azure Powershell Tips
 

More from Florian Hopf

More from Florian Hopf (12)

Modern Java Features
Modern Java Features Modern Java Features
Modern Java Features
 
Einführung in Elasticsearch
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in Elasticsearch
 
Einfuehrung in Elasticsearch
Einfuehrung in ElasticsearchEinfuehrung in Elasticsearch
Einfuehrung in Elasticsearch
 
Data modeling for Elasticsearch
Data modeling for ElasticsearchData modeling for Elasticsearch
Data modeling for Elasticsearch
 
Einführung in Elasticsearch
Einführung in ElasticsearchEinführung in Elasticsearch
Einführung in Elasticsearch
 
Anwendungsfälle für Elasticsearch JAX 2015
Anwendungsfälle für Elasticsearch JAX 2015Anwendungsfälle für Elasticsearch JAX 2015
Anwendungsfälle für Elasticsearch JAX 2015
 
Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015Anwendungsfälle für Elasticsearch JavaLand 2015
Anwendungsfälle für Elasticsearch JavaLand 2015
 
Anwendungsfaelle für Elasticsearch
Anwendungsfaelle für ElasticsearchAnwendungsfaelle für Elasticsearch
Anwendungsfaelle für Elasticsearch
 
Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)
Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)
Search Evolution - Von Lucene zu Solr und ElasticSearch (Majug 20.06.2013)
 
Search Evolution - Von Lucene zu Solr und ElasticSearch
Search Evolution - Von Lucene zu Solr und ElasticSearchSearch Evolution - Von Lucene zu Solr und ElasticSearch
Search Evolution - Von Lucene zu Solr und ElasticSearch
 
Akka Presentation Schule@synyx
Akka Presentation Schule@synyxAkka Presentation Schule@synyx
Akka Presentation Schule@synyx
 
Lucene Solr talk at Java User Group Karlsruhe
Lucene Solr talk at Java User Group KarlsruheLucene Solr talk at Java User Group Karlsruhe
Lucene Solr talk at Java User Group Karlsruhe
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 

Java clients for elasticsearch