SlideShare a Scribd company logo
1 of 32
Download to read offline
77
AppSearch
... alebo ako prepojiť aplikáciu s
Elasticsearch
Rado Ondáš
Sr. Support Engineer - Elastic
78
What is AppSearch?
https://www.elastic.co/webinars/building-great-search-experiences-with-search-ui
79
Searchbox? Basic functionality! I want it too!
80
Searchbox? Basic functionality! I want it too!
81
Searchbox? Basic functionality! I want it too!
82
Searchbox? Basic functionality! I want it too!
83
84
We all know how one simple
search box looks like!
85
Simple AppSearch architecture
It might not be just one box, but filters, aggregations, sliders too …
86
Simple AppSearch architecture
It might not be just one box, but filters, aggregations, sliders too …
Query
Response
87
Simple AppSearch architecture
It might not be just one box, but filters, aggregations, sliders too …
Query
Response
88
89
How TO!
1. Simple HTTP call to _search REST API of Elasticsearch
2. Elastic (former Swiftype) Site Search - [https://www.elastic.co/products/site-search]
3. Elastic (former Swiftype) App Search - [https://www.elastic.co/products/app-
search]
4. Custom build solution using Elasticsearch client libraries –
[https://www.elastic.co/guide/en/elasticsearch/client/index.html]
Different solutions for different approach
90
1. Simple HTTP call to _search REST API of Elastic
• No Elasticsearch client library – only HTTP rest api calls
• Using internal (your) programming language http library
• All logic, maintenance and compatibility is on you
• Small app, low number of searches
• Usually simple queries
Good for small apps, rare searches, low search throughput
91
Simple HTTP call to _search REST API of Elastic
Good for small apps, rare searches, low search throughput
curl -X GET "localhost:9200/_search?pretty" -H 'Content-Type:
application/json' -d'
{
"query": {
"match" : {
"message" : {
"query" : "this is a test"
}
}
}
}
'
92
4. Custom built solution using Elasticsearch client
libraries
• Using Elasticsearch client library of your choice
• Complete control over all functionality from indexing and mapping à
• To search queries, scoring, synonyms and results
• Library takes care
‒ of connection pool
‒ helps with building the query
‒ About compatibility with ES versions
• No search UI
• Your focus is functionality of application like with any other library
Great for complete control over all functionality
93
4. Custom built solution using Elasticsearch client
libraries
• Java REST Client
• Java API
• JavaScript API
• Ruby API
• Go API
• .NET API
• PHP API
• Perl API
• Python API
Language clients
94
2. Elastic Site Search
95
2. Elastic Site Search
• Great for smaller apps with public access
• Crawler will ingest your entire website into a powerful, relevance-tuned
search engine
• Ckeeps content current
• Almost no development experiences needed
• Easy installation
• Nice UI to tweak and tune your search experience
• Hosted solution – soon also in Elastic cloud
• https://app.swiftype.com/login
Crawl and search your website with ease
96
2. Elastic Site Search
<!DOCTYPE html>
<head>
<script type="text/javascript">
(function (w, d, t, u, n, s, e) {
w['SwiftypeObject'] = n; w[n] = w[n] || function () {
(w[n].q = w[n].q || []).push(arguments);
}; s = d.createElement(t);
e = d.getElementsByTagName(t)[0]; s.async = 1; s.src = u; e.parentNode.insertBefore(s, e);
})(window, document, 'script', '//s.swiftypecdn.com/install/v2/st.js', '_st');
_st('install', '6iuFaExTVvgZ7hMLYixx', '2.0.0');
</script>
</head>
<body>
This is your search page
<form>
<input type="text" class="st-default-search-input">
<button type="submit">Submit</button>
</form>
</body></html>
Code
97
2. Elastic Site Search
98
DEMO time! – Site Search
99
3. App Search
100
3. Elastic App Search
• Use app-search library, connect to your app, index or search documents
• Seamless scalability
• Tunable relevance controls,
• Thorough documentation
• Well-maintained clients (JavaScript, Node.js, PHP, Python, Ruby)
• Robust analytics with UI
• Hosted (paid) or self-managed – free except few features like SAML
• https://app.swiftype.com/select
Great for any application size
101
3. Elastic App Search
Architecture
Search box
App + app-search library
UI
APP
102
3. Elastic App Search
• Create an engine
• Index documents
• Refine search
• Build
• Keep learning and improve your search
https://swiftype.com/documentation/app-search/getting-started
103
3. Elastic App Search
>>> from elastic_app_search import Client
>>> client = Client(
api_key='private-mu75psc5egt9ppzuycnc2mc3‘,
base_endpoint='localhost:3002/api/as/v1‘,
use_https=False
)
Configuration
104
3. Elastic App Search
>>> client.search('favorite-videos', 'grumpy cat', {})
{'meta': {'page': {'current': 1, 'total_pages': 1, 'total_results': 2, 'size': 10}, ...},
'results': [...]
Search
105
3. Elastic App Search
106
DEMO time! – App Search
https://github.com/radoondas/flask-app-search
107
Links
• Flask app: https://github.com/radoondas/flask-app-search
• Webinar (10.10.2019) https://www.elastic.co/webinars/building-great-
search-experiences-with-search-ui
• https://www.elastic.co/products/app-search
• https://github.com/elastic/app-search-python
• https://www.elastic.co/products/site-search
Documentation and blogs
108
Thank YOU!

More Related Content

What's hot

(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014
(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014
(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014Amazon Web Services
 
Django REST Framework
Django REST FrameworkDjango REST Framework
Django REST FrameworkLoad Impact
 
Building an API with Django and Django REST Framework
Building an API with Django and Django REST FrameworkBuilding an API with Django and Django REST Framework
Building an API with Django and Django REST FrameworkChristopher Foresman
 
Rspec API Documentation
Rspec API DocumentationRspec API Documentation
Rspec API DocumentationSmartLogic
 
Ch7(publishing my sql data on the web)
Ch7(publishing my sql data on the web)Ch7(publishing my sql data on the web)
Ch7(publishing my sql data on the web)Chhom Karath
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPiMasters
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceAmazon Web Services
 
A site in 15 minutes with yii
A site in 15 minutes with yiiA site in 15 minutes with yii
A site in 15 minutes with yiiAndy Kelk
 
(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014
(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014
(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014Amazon Web Services
 
Djangocon 2014 angular + django
Djangocon 2014 angular + djangoDjangocon 2014 angular + django
Djangocon 2014 angular + djangoNina Zakharenko
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of DjangoJacob Kaplan-Moss
 
Deep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interfaceDeep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interfaceJohn Varghese
 
Django rest framework tips and tricks
Django rest framework   tips and tricksDjango rest framework   tips and tricks
Django rest framework tips and tricksxordoquy
 
Debugging and Testing ES Systems
Debugging and Testing ES SystemsDebugging and Testing ES Systems
Debugging and Testing ES SystemsChris Birchall
 
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 MinutesDjangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 MinutesNina Zakharenko
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexyananelson
 
Intro to Scala.js - Scala UG Cologne
Intro to Scala.js - Scala UG CologneIntro to Scala.js - Scala UG Cologne
Intro to Scala.js - Scala UG CologneMarius Soutier
 
Combining Django REST framework & Elasticsearch
Combining Django REST framework & ElasticsearchCombining Django REST framework & Elasticsearch
Combining Django REST framework & ElasticsearchYaroslav Muravskyi
 

What's hot (20)

(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014
(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014
(DEV305) Building Apps with the AWS SDK for PHP | AWS re:Invent 2014
 
Django REST Framework
Django REST FrameworkDjango REST Framework
Django REST Framework
 
Building an API with Django and Django REST Framework
Building an API with Django and Django REST FrameworkBuilding an API with Django and Django REST Framework
Building an API with Django and Django REST Framework
 
Rspec API Documentation
Rspec API DocumentationRspec API Documentation
Rspec API Documentation
 
Ch7(publishing my sql data on the web)
Ch7(publishing my sql data on the web)Ch7(publishing my sql data on the web)
Ch7(publishing my sql data on the web)
 
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHPPHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
PHP Experience 2016 - [Workshop] Elastic Search: Turbinando sua aplicação PHP
 
Deep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line InterfaceDeep Dive: AWS Command Line Interface
Deep Dive: AWS Command Line Interface
 
A site in 15 minutes with yii
A site in 15 minutes with yiiA site in 15 minutes with yii
A site in 15 minutes with yii
 
(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014
(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014
(DEV301) Advanced Usage of the AWS CLI | AWS re:Invent 2014
 
Djangocon 2014 angular + django
Djangocon 2014 angular + djangoDjangocon 2014 angular + django
Djangocon 2014 angular + django
 
The Best (and Worst) of Django
The Best (and Worst) of DjangoThe Best (and Worst) of Django
The Best (and Worst) of Django
 
Deep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interfaceDeep Dive into AWS CLI - the command line interface
Deep Dive into AWS CLI - the command line interface
 
Django rest framework tips and tricks
Django rest framework   tips and tricksDjango rest framework   tips and tricks
Django rest framework tips and tricks
 
Week3 adb
Week3 adbWeek3 adb
Week3 adb
 
Debugging and Testing ES Systems
Debugging and Testing ES SystemsDebugging and Testing ES Systems
Debugging and Testing ES Systems
 
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 MinutesDjangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
Djangocon 2014 - Django REST Framework - So Easy You Can Learn it in 25 Minutes
 
Play á la Rails
Play á la RailsPlay á la Rails
Play á la Rails
 
Refresh Austin - Intro to Dexy
Refresh Austin - Intro to DexyRefresh Austin - Intro to Dexy
Refresh Austin - Intro to Dexy
 
Intro to Scala.js - Scala UG Cologne
Intro to Scala.js - Scala UG CologneIntro to Scala.js - Scala UG Cologne
Intro to Scala.js - Scala UG Cologne
 
Combining Django REST framework & Elasticsearch
Combining Django REST framework & ElasticsearchCombining Django REST framework & Elasticsearch
Combining Django REST framework & Elasticsearch
 

Similar to Ako prepojiť aplikáciu s Elasticsearch

Modernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchModernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchTaylor Lovett
 
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琛琳 饶
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearchErhwen Kuo
 
Secure Coding For Java - Une introduction
Secure Coding For Java - Une introductionSecure Coding For Java - Une introduction
Secure Coding For Java - Une introductionSebastien Gioria
 
China Science Challenge
China Science ChallengeChina Science Challenge
China Science Challengeremko caprio
 
SgCodeJam24 Workshop
SgCodeJam24 WorkshopSgCodeJam24 Workshop
SgCodeJam24 Workshopremko caprio
 
Rapid Prototyping with Solr
Rapid Prototyping with SolrRapid Prototyping with Solr
Rapid Prototyping with SolrErik Hatcher
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)Doris Chen
 
Wordpress search-elasticsearch
Wordpress search-elasticsearchWordpress search-elasticsearch
Wordpress search-elasticsearchTaylor Lovett
 
MongoDB Days UK: Building Apps with the MEAN Stack
MongoDB Days UK: Building Apps with the MEAN StackMongoDB Days UK: Building Apps with the MEAN Stack
MongoDB Days UK: Building Apps with the MEAN StackMongoDB
 
Introduction to ElasticSearch
Introduction to ElasticSearchIntroduction to ElasticSearch
Introduction to ElasticSearchSimobo
 
Rapid Prototyping with Solr
Rapid Prototyping with SolrRapid Prototyping with Solr
Rapid Prototyping with SolrErik Hatcher
 
Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Atlassian
 
前端MVC之BackboneJS
前端MVC之BackboneJS前端MVC之BackboneJS
前端MVC之BackboneJSZhang Xiaoxue
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersJeremy Lindblom
 
Qui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in ActionQui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in ActionGlobalLogic Ukraine
 
Escape from the automation hell
Escape from the automation hellEscape from the automation hell
Escape from the automation hellNikita Simonovets
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...mfrancis
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application DevelopmentChristian Baranowski
 

Similar to Ako prepojiť aplikáciu s Elasticsearch (20)

Modernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchModernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with 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
 
06 integrate elasticsearch
06 integrate elasticsearch06 integrate elasticsearch
06 integrate elasticsearch
 
Secure Coding For Java - Une introduction
Secure Coding For Java - Une introductionSecure Coding For Java - Une introduction
Secure Coding For Java - Une introduction
 
China Science Challenge
China Science ChallengeChina Science Challenge
China Science Challenge
 
SgCodeJam24 Workshop
SgCodeJam24 WorkshopSgCodeJam24 Workshop
SgCodeJam24 Workshop
 
Rapid Prototyping with Solr
Rapid Prototyping with SolrRapid Prototyping with Solr
Rapid Prototyping with Solr
 
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
jQuery Makes Writing JavaScript Fun Again (for HTML5 User Group)
 
Wordpress search-elasticsearch
Wordpress search-elasticsearchWordpress search-elasticsearch
Wordpress search-elasticsearch
 
MongoDB Days UK: Building Apps with the MEAN Stack
MongoDB Days UK: Building Apps with the MEAN StackMongoDB Days UK: Building Apps with the MEAN Stack
MongoDB Days UK: Building Apps with the MEAN Stack
 
Introduction to ElasticSearch
Introduction to ElasticSearchIntroduction to ElasticSearch
Introduction to ElasticSearch
 
Rapid Prototyping with Solr
Rapid Prototyping with SolrRapid Prototyping with Solr
Rapid Prototyping with Solr
 
Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011Remixing Confluence with Speakeasy - AtlasCamp 2011
Remixing Confluence with Speakeasy - AtlasCamp 2011
 
前端MVC之BackboneJS
前端MVC之BackboneJS前端MVC之BackboneJS
前端MVC之BackboneJS
 
Amazon Web Services for PHP Developers
Amazon Web Services for PHP DevelopersAmazon Web Services for PHP Developers
Amazon Web Services for PHP Developers
 
Qui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in ActionQui Quaerit, Reperit. AWS Elasticsearch in Action
Qui Quaerit, Reperit. AWS Elasticsearch in Action
 
Escape from the automation hell
Escape from the automation hellEscape from the automation hell
Escape from the automation hell
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 

More from bart-sk

Ako na eshop, ktorý si vaši zákazníci zamilujú?
Ako na eshop, ktorý si vaši zákazníci zamilujú?Ako na eshop, ktorý si vaši zákazníci zamilujú?
Ako na eshop, ktorý si vaši zákazníci zamilujú?bart-sk
 
eHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín sveta
eHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín svetaeHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín sveta
eHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín svetabart-sk
 
Digitálne zážitky v internetových obchodoch v roku 2018
Digitálne zážitky v internetových obchodoch v roku 2018Digitálne zážitky v internetových obchodoch v roku 2018
Digitálne zážitky v internetových obchodoch v roku 2018bart-sk
 
Frontend Developer v roku 2018
Frontend Developer v roku 2018Frontend Developer v roku 2018
Frontend Developer v roku 2018bart-sk
 
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiťČo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiťbart-sk
 
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiťČo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiťbart-sk
 
Ako sme prerábali košík - zachej.sk
Ako sme prerábali košík - zachej.skAko sme prerábali košík - zachej.sk
Ako sme prerábali košík - zachej.skbart-sk
 
Frontend Masters Košice - Ako postaviť frontend nad kvalitným API
Frontend Masters Košice - Ako postaviť frontend nad kvalitným APIFrontend Masters Košice - Ako postaviť frontend nad kvalitným API
Frontend Masters Košice - Ako postaviť frontend nad kvalitným APIbart-sk
 
Frontend Masters Košice - Kvalitné API pre frontenďáka
Frontend Masters Košice - Kvalitné API pre frontenďákaFrontend Masters Košice - Kvalitné API pre frontenďáka
Frontend Masters Košice - Kvalitné API pre frontenďákabart-sk
 
Frontend Masters Košice - oAuth
Frontend Masters Košice - oAuthFrontend Masters Košice - oAuth
Frontend Masters Košice - oAuthbart-sk
 
9 typov ako zvýšiť úspešnosť vášho eshopu
9 typov ako zvýšiť úspešnosť vášho eshopu9 typov ako zvýšiť úspešnosť vášho eshopu
9 typov ako zvýšiť úspešnosť vášho eshopubart-sk
 
Frontend Masters Košice - Zeplin v praxi
Frontend Masters Košice - Zeplin v praxiFrontend Masters Košice - Zeplin v praxi
Frontend Masters Košice - Zeplin v praxibart-sk
 
Frontend Masters Košice - Debuggovanie a optimalizácia react.js aplikácií
Frontend Masters Košice - Debuggovanie a optimalizácia react.js aplikáciíFrontend Masters Košice - Debuggovanie a optimalizácia react.js aplikácií
Frontend Masters Košice - Debuggovanie a optimalizácia react.js aplikáciíbart-sk
 
Frontend Masters Košice - Styled Components
Frontend Masters Košice - Styled ComponentsFrontend Masters Košice - Styled Components
Frontend Masters Košice - Styled Componentsbart-sk
 

More from bart-sk (14)

Ako na eshop, ktorý si vaši zákazníci zamilujú?
Ako na eshop, ktorý si vaši zákazníci zamilujú?Ako na eshop, ktorý si vaši zákazníci zamilujú?
Ako na eshop, ktorý si vaši zákazníci zamilujú?
 
eHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín sveta
eHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín svetaeHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín sveta
eHealth po našom – Ako vyvíjame a testujeme medicínsku appku pre 24 krajín sveta
 
Digitálne zážitky v internetových obchodoch v roku 2018
Digitálne zážitky v internetových obchodoch v roku 2018Digitálne zážitky v internetových obchodoch v roku 2018
Digitálne zážitky v internetových obchodoch v roku 2018
 
Frontend Developer v roku 2018
Frontend Developer v roku 2018Frontend Developer v roku 2018
Frontend Developer v roku 2018
 
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiťČo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
 
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiťČo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
Čo je to použiteľnosť webu a 5 tipov ako ju zlepšiť
 
Ako sme prerábali košík - zachej.sk
Ako sme prerábali košík - zachej.skAko sme prerábali košík - zachej.sk
Ako sme prerábali košík - zachej.sk
 
Frontend Masters Košice - Ako postaviť frontend nad kvalitným API
Frontend Masters Košice - Ako postaviť frontend nad kvalitným APIFrontend Masters Košice - Ako postaviť frontend nad kvalitným API
Frontend Masters Košice - Ako postaviť frontend nad kvalitným API
 
Frontend Masters Košice - Kvalitné API pre frontenďáka
Frontend Masters Košice - Kvalitné API pre frontenďákaFrontend Masters Košice - Kvalitné API pre frontenďáka
Frontend Masters Košice - Kvalitné API pre frontenďáka
 
Frontend Masters Košice - oAuth
Frontend Masters Košice - oAuthFrontend Masters Košice - oAuth
Frontend Masters Košice - oAuth
 
9 typov ako zvýšiť úspešnosť vášho eshopu
9 typov ako zvýšiť úspešnosť vášho eshopu9 typov ako zvýšiť úspešnosť vášho eshopu
9 typov ako zvýšiť úspešnosť vášho eshopu
 
Frontend Masters Košice - Zeplin v praxi
Frontend Masters Košice - Zeplin v praxiFrontend Masters Košice - Zeplin v praxi
Frontend Masters Košice - Zeplin v praxi
 
Frontend Masters Košice - Debuggovanie a optimalizácia react.js aplikácií
Frontend Masters Košice - Debuggovanie a optimalizácia react.js aplikáciíFrontend Masters Košice - Debuggovanie a optimalizácia react.js aplikácií
Frontend Masters Košice - Debuggovanie a optimalizácia react.js aplikácií
 
Frontend Masters Košice - Styled Components
Frontend Masters Košice - Styled ComponentsFrontend Masters Košice - Styled Components
Frontend Masters Košice - Styled Components
 

Recently uploaded

Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.pptibrahimabdi22
 
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service AvailableVastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Availablegargpaaro
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...HyderabadDolls
 
Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?RemarkSemacio
 
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime GiridihGiridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridihmeghakumariji156
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...HyderabadDolls
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...nirzagarg
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowgargpaaro
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...HyderabadDolls
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...nirzagarg
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabiaahmedjiabur940
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareGraham Ware
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubaikojalkojal131
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...gajnagarg
 
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...ThinkInnovation
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdfkhraisr
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...gajnagarg
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangeThinkInnovation
 

Recently uploaded (20)

Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Purnia [ 7014168258 ] Call Me For Genuine Models We...
 
7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt7. Epi of Chronic respiratory diseases.ppt
7. Epi of Chronic respiratory diseases.ppt
 
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service AvailableVastral Call Girls Book Now 7737669865 Top Class Escort Service Available
Vastral Call Girls Book Now 7737669865 Top Class Escort Service Available
 
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
Gomti Nagar & best call girls in Lucknow | 9548273370 Independent Escorts & D...
 
Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?Case Study 4 Where the cry of rebellion happen?
Case Study 4 Where the cry of rebellion happen?
 
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime GiridihGiridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
Giridih Escorts Service Girl ^ 9332606886, WhatsApp Anytime Giridih
 
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
Sealdah % High Class Call Girls Kolkata - 450+ Call Girl Cash Payment 8005736...
 
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Tumkur [ 7014168258 ] Call Me For Genuine Models We...
 
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book nowVadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
Vadodara 💋 Call Girl 7737669865 Call Girls in Vadodara Escort service book now
 
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
Charbagh + Female Escorts Service in Lucknow | Starting ₹,5K To @25k with A/C...
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Begusarai [ 7014168258 ] Call Me For Genuine Models...
 
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi ArabiaIn Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
In Riyadh ((+919101817206)) Cytotec kit @ Abortion Pills Saudi Arabia
 
Digital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham WareDigital Transformation Playbook by Graham Ware
Digital Transformation Playbook by Graham Ware
 
Dubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls DubaiDubai Call Girls Peeing O525547819 Call Girls Dubai
Dubai Call Girls Peeing O525547819 Call Girls Dubai
 
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
Top profile Call Girls In Nandurbar [ 7014168258 ] Call Me For Genuine Models...
 
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
Identify Customer Segments to Create Customer Offers for Each Segment - Appli...
 
20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf20240412-SmartCityIndex-2024-Full-Report.pdf
20240412-SmartCityIndex-2024-Full-Report.pdf
 
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
Top profile Call Girls In Indore [ 7014168258 ] Call Me For Genuine Models We...
 
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With OrangePredicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
Predicting HDB Resale Prices - Conducting Linear Regression Analysis With Orange
 

Ako prepojiť aplikáciu s Elasticsearch

  • 1. 77 AppSearch ... alebo ako prepojiť aplikáciu s Elasticsearch Rado Ondáš Sr. Support Engineer - Elastic
  • 7. 83
  • 8. 84 We all know how one simple search box looks like!
  • 9. 85 Simple AppSearch architecture It might not be just one box, but filters, aggregations, sliders too …
  • 10. 86 Simple AppSearch architecture It might not be just one box, but filters, aggregations, sliders too … Query Response
  • 11. 87 Simple AppSearch architecture It might not be just one box, but filters, aggregations, sliders too … Query Response
  • 12. 88
  • 13. 89 How TO! 1. Simple HTTP call to _search REST API of Elasticsearch 2. Elastic (former Swiftype) Site Search - [https://www.elastic.co/products/site-search] 3. Elastic (former Swiftype) App Search - [https://www.elastic.co/products/app- search] 4. Custom build solution using Elasticsearch client libraries – [https://www.elastic.co/guide/en/elasticsearch/client/index.html] Different solutions for different approach
  • 14. 90 1. Simple HTTP call to _search REST API of Elastic • No Elasticsearch client library – only HTTP rest api calls • Using internal (your) programming language http library • All logic, maintenance and compatibility is on you • Small app, low number of searches • Usually simple queries Good for small apps, rare searches, low search throughput
  • 15. 91 Simple HTTP call to _search REST API of Elastic Good for small apps, rare searches, low search throughput curl -X GET "localhost:9200/_search?pretty" -H 'Content-Type: application/json' -d' { "query": { "match" : { "message" : { "query" : "this is a test" } } } } '
  • 16. 92 4. Custom built solution using Elasticsearch client libraries • Using Elasticsearch client library of your choice • Complete control over all functionality from indexing and mapping à • To search queries, scoring, synonyms and results • Library takes care ‒ of connection pool ‒ helps with building the query ‒ About compatibility with ES versions • No search UI • Your focus is functionality of application like with any other library Great for complete control over all functionality
  • 17. 93 4. Custom built solution using Elasticsearch client libraries • Java REST Client • Java API • JavaScript API • Ruby API • Go API • .NET API • PHP API • Perl API • Python API Language clients
  • 19. 95 2. Elastic Site Search • Great for smaller apps with public access • Crawler will ingest your entire website into a powerful, relevance-tuned search engine • Ckeeps content current • Almost no development experiences needed • Easy installation • Nice UI to tweak and tune your search experience • Hosted solution – soon also in Elastic cloud • https://app.swiftype.com/login Crawl and search your website with ease
  • 20. 96 2. Elastic Site Search <!DOCTYPE html> <head> <script type="text/javascript"> (function (w, d, t, u, n, s, e) { w['SwiftypeObject'] = n; w[n] = w[n] || function () { (w[n].q = w[n].q || []).push(arguments); }; s = d.createElement(t); e = d.getElementsByTagName(t)[0]; s.async = 1; s.src = u; e.parentNode.insertBefore(s, e); })(window, document, 'script', '//s.swiftypecdn.com/install/v2/st.js', '_st'); _st('install', '6iuFaExTVvgZ7hMLYixx', '2.0.0'); </script> </head> <body> This is your search page <form> <input type="text" class="st-default-search-input"> <button type="submit">Submit</button> </form> </body></html> Code
  • 22. 98 DEMO time! – Site Search
  • 24. 100 3. Elastic App Search • Use app-search library, connect to your app, index or search documents • Seamless scalability • Tunable relevance controls, • Thorough documentation • Well-maintained clients (JavaScript, Node.js, PHP, Python, Ruby) • Robust analytics with UI • Hosted (paid) or self-managed – free except few features like SAML • https://app.swiftype.com/select Great for any application size
  • 25. 101 3. Elastic App Search Architecture Search box App + app-search library UI APP
  • 26. 102 3. Elastic App Search • Create an engine • Index documents • Refine search • Build • Keep learning and improve your search https://swiftype.com/documentation/app-search/getting-started
  • 27. 103 3. Elastic App Search >>> from elastic_app_search import Client >>> client = Client( api_key='private-mu75psc5egt9ppzuycnc2mc3‘, base_endpoint='localhost:3002/api/as/v1‘, use_https=False ) Configuration
  • 28. 104 3. Elastic App Search >>> client.search('favorite-videos', 'grumpy cat', {}) {'meta': {'page': {'current': 1, 'total_pages': 1, 'total_results': 2, 'size': 10}, ...}, 'results': [...] Search
  • 30. 106 DEMO time! – App Search https://github.com/radoondas/flask-app-search
  • 31. 107 Links • Flask app: https://github.com/radoondas/flask-app-search • Webinar (10.10.2019) https://www.elastic.co/webinars/building-great- search-experiences-with-search-ui • https://www.elastic.co/products/app-search • https://github.com/elastic/app-search-python • https://www.elastic.co/products/site-search Documentation and blogs