SlideShare a Scribd company logo
1 of 35
Itamar Syn-Hershko
http://code972.com
@synhershko
The ultimate
guide for
Elasticsearch
plugins
Agenda
โ€ข Integration points & plugin types
โ€ข Showcases
โ€ข Gotchas
โ€ข When-to, How-to
โ€ข Q & A
REST API
Analysis
chain
Search
Querying
Query
parser
Lucene Index
Perform
indexing
Indexing
Make Lucene
document
ElasticsearchServer
Lucene extension points
Analysis chain
Search
Query parser
Lucene Index
Perform indexing
Lucene extension points
Analysis chain
Search
Query parser
Lucene Index
Perform indexing
Lucene extension points
Analysis chain
Search
Query parser
Lucene Index
Perform indexing
Harry Potter and the Goblet of Fire
Tokenizer
Harry
Potter
and
the
Goblet
of
Fire
Lower case
filter
harry
potter
and
the
goblet
of
fire
Stop-words
filter
harry
potter
goblet
fire
Step 1: Tokenization
Step 2: Filtering
Welcome to Malmรถ!
Tokenizer
Welcome
to
Malmรถ
ASCII folding
filter
Lowercase
filter
Step 1: Tokenization
Step 2: Filtering
Welcome
to
Malmo
welcome
to
malmo
Harry Potter and the Goblet of Fire
Tokenizer
Harry
Potter
and
the
Goblet
of
Fire
Lower case
filter
harry
potter
and
the
goblet
of
fire
Stop-words
filter
harry
potter
goblet
fire
Potter
Tokenizer
Potter
Lower case
filter
potter
Stop-words
filter
potter
QueryIndexing
itamar@code972.com
Tokenizer
itamar
code
972
com
Lower case
filter
itamar
code
972
com
Step 1: Tokenization
Step 2: Filtering
Try searching on German compound
wordsโ€ฆ
Analyzers
The quick brown fox jumped over the lazy dog,
bob@hotmail.com 123432.
StandardAnalyzer:
[quick] [brown] [fox] [jumped] [over] [lazy] [dog] [bob@hotmail.com] [123432]
StopAnalyzer:
[quick] [brown] [fox] [jumped] [over] [lazy] [dog] [bob] [hotmail] [com]
SimpleAnalyzer:
[the] [quick] [brown] [fox] [jumped] [over] [the] [lazy] [dog] [bob] [hotmail]
[com]
WhitespaceAnalyzer:
[The] [quick] [brown] [fox] [jumped] [over] [the] [lazy] [dog,]
[bob@hotmail.com] [123432.]
KeywordAnalyzer:
[The quick brown fox jumped over the lazy dog, bob@hotmail.com 123432.]
Custom analyzers from code
New in Elasticsearch v1.1.0
Showcase: Custom Analyzer - Hebrew
analysis plugin for Elasticsearch
โ€ข https://github.com/synhershko/elasticsearch-
analysis-hebrew
โ€ข Available on QBox.io
Lucene extension points
Analysis chain
Search
Query parser
Lucene Index
Perform indexing
Scripting
โ€ข Sorting, filters, facets, script fields, custom
scoring, aggregations, document updates
โ€ข MVEL, but others are supported
โ€ข Generally speaking: SLOOOOOOOW
โ€ข Mostly useful as quick mocks / PoC
โ€ข Native scripts using Java by implementing
AbstractExecutableScript &
AbstractSearchScript
Custom scoring & similarity
โ€ข Function score query
โ€“ Previously known as Custom Score Query
โ€ข Similarity
Lucene extension points
Analysis chain
Search
Query parser
Lucene Index
Perform indexing
Codecs
Black box
REST API
QueryingIndexing
ElasticsearchServer
Controlling shard allocation
โ€ข Filtering built in
โ€“ By tags, groups, racks, IPs
โ€“ Black list / white list
โ€ข Total shards per node
โ€ข Disk based
โ€ข EXPERT: Roll your own by implementing
AllocationDecider
Custom REST endpoints
Transports
โ€ข Exposes the Elasticsearch RESTful API over
protocols other than HTTP
โ€“ Apache Thrift
โ€“ Memcached
โ€“ Servlet
โ€“ Redis
โ€“ ZeroMq
Showcase: Custom percolator
Showcase: The bubble plugin
Site plugins
โ€ข Monitoring
โ€“ BigDesk, ElasticHQ, Paramedic, โ€ฆ
โ€ข Hammer (GUI for REST interface)
โ€ข Inquisitor (debugging queries)
โ€ข SegmentSpy
โ€ข WhatsOn
Discovery
โ€ข Default is Zen discovery
โ€“ Unicast: I know who my nodes are
โ€“ Multicast: Auto discovery for nodes
โ€ข Multicast discovery support for cloud
environments
โ€“ AWS
โ€“ Azure
โ€“ Google Compute
โ€ข ProTip: Unicast in production unless you know
what youโ€™re doing
โ€ข ZooKeeper plugin
Snapshot / restore repositories
โ€ข File system
โ€ข AWS S3
โ€ข HDFS
โ€ข Azure
โ€ข Roll your own (e.g. Glacier)
River plugins
โ€ข Obsolete
โ€ข Use the โ€œshovellerโ€ approach
โ€ข logstash, stream2es
Summary: Plugin types
โ€ข Lucene components
โ€“ Analysis
โ€“ Similarity
โ€“ Scoring
โ€ข REST endpoints
โ€ข Scripting
โ€ข ES infrastructure (Discovery, Transport,
Snapshot/restore)
โ€ข Site plugins
โ€ข River plugins
Installing plugins
โ€ข Manual under /plugins
โ€ข Official / GitHub / Maven installation:
โ€ข From zip:
โ€ข Plugin management:
When to write a plugin?
Writing your own plugin: Gotchas
โ€ข Maintenance โ€“ the deeper you go in the API
the harder it is to keep it up to date
โ€ข Versioning and installation on (large) clusters
โ€“ Though can be solved using puppet, docker et al
โ€ข Auxiliary data (like dictionaries etc)
โ€ข Testing & Debugging
Code: Writing your own plugin
โ€ข JAR file with bootstrap code:
โ€ข Embed this as es-plugin.properties:
plugin=org.elasticsearch.plugin.example.ExamplePlugin
Thank you.
Questions?
Itamar Syn-Hershko
http://code972.com
@synhershko

More Related Content

What's hot

What's hot (20)

Cool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearchCool bonsai cool - an introduction to ElasticSearch
Cool bonsai cool - an introduction to ElasticSearch
ย 
Introduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of LuceneIntroduction to Elasticsearch with basics of Lucene
Introduction to Elasticsearch with basics of Lucene
ย 
Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)Your Data, Your Search, ElasticSearch (EURUKO 2011)
Your Data, Your Search, ElasticSearch (EURUKO 2011)
ย 
Intro to elasticsearch
Intro to elasticsearchIntro to elasticsearch
Intro to elasticsearch
ย 
Elasticsearch - DevNexus 2015
Elasticsearch - DevNexus 2015Elasticsearch - DevNexus 2015
Elasticsearch - DevNexus 2015
ย 
Use Cases for Elastic Search Percolator
Use Cases for Elastic Search PercolatorUse Cases for Elastic Search Percolator
Use Cases for Elastic Search Percolator
ย 
Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!Elasticsearch: You know, for search! and more!
Elasticsearch: You know, for search! and more!
ย 
Elasticsearch Introduction
Elasticsearch IntroductionElasticsearch Introduction
Elasticsearch Introduction
ย 
Workshop: Learning Elasticsearch
Workshop: Learning ElasticsearchWorkshop: Learning Elasticsearch
Workshop: Learning Elasticsearch
ย 
Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)Elasticsearch quick Intro (English)
Elasticsearch quick Intro (English)
ย 
From Lucene to Elasticsearch, a short explanation of horizontal scalability
From Lucene to Elasticsearch, a short explanation of horizontal scalabilityFrom Lucene to Elasticsearch, a short explanation of horizontal scalability
From Lucene to Elasticsearch, a short explanation of horizontal scalability
ย 
An Introduction to Elastic Search.
An Introduction to Elastic Search.An Introduction to Elastic Search.
An Introduction to Elastic Search.
ย 
quick intro to elastic search
quick intro to elastic search quick intro to elastic search
quick intro to elastic search
ย 
Elastic search
Elastic searchElastic search
Elastic search
ย 
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...What I learnt: Elastic search & Kibana : introduction, installtion & configur...
What I learnt: Elastic search & Kibana : introduction, installtion & configur...
ย 
Intro to Elasticsearch
Intro to ElasticsearchIntro to Elasticsearch
Intro to Elasticsearch
ย 
Elastic search
Elastic searchElastic search
Elastic search
ย 
ElasticSearch AJUG 2013
ElasticSearch AJUG 2013ElasticSearch AJUG 2013
ElasticSearch AJUG 2013
ย 
ElasticSearch - index server used as a document database
ElasticSearch - index server used as a document databaseElasticSearch - index server used as a document database
ElasticSearch - index server used as a document database
ย 
A Survey of Elasticsearch Usage
A Survey of Elasticsearch UsageA Survey of Elasticsearch Usage
A Survey of Elasticsearch Usage
ย 

Similar to The ultimate guide for Elasticsearch plugins

Lucene for Solr Developers
Lucene for Solr DevelopersLucene for Solr Developers
Lucene for Solr Developers
Erik Hatcher
ย 
Lucene for Solr Developers
Lucene for Solr DevelopersLucene for Solr Developers
Lucene for Solr Developers
Erik Hatcher
ย 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
Tomas Doran
ย 
The return of an old enemy
The return of an old enemyThe return of an old enemy
The return of an old enemy
DonSchado
ย 
Introduction to Apache Lucene/Solr
Introduction to Apache Lucene/SolrIntroduction to Apache Lucene/Solr
Introduction to Apache Lucene/Solr
Rahul Jain
ย 
Search onhadoopsfhug081413
Search onhadoopsfhug081413Search onhadoopsfhug081413
Search onhadoopsfhug081413
gregchanan
ย 

Similar to The ultimate guide for Elasticsearch plugins (20)

Apache Lucene 4
Apache Lucene 4Apache Lucene 4
Apache Lucene 4
ย 
Let's Build an Inverted Index: Introduction to Apache Lucene/Solr
Let's Build an Inverted Index: Introduction to Apache Lucene/SolrLet's Build an Inverted Index: Introduction to Apache Lucene/Solr
Let's Build an Inverted Index: Introduction to Apache Lucene/Solr
ย 
Performance and Abstractions
Performance and AbstractionsPerformance and Abstractions
Performance and Abstractions
ย 
Lucene for Solr Developers
Lucene for Solr DevelopersLucene for Solr Developers
Lucene for Solr Developers
ย 
Lucene for Solr Developers
Lucene for Solr DevelopersLucene for Solr Developers
Lucene for Solr Developers
ย 
Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015Woo: Writing a fast web server @ ELS2015
Woo: Writing a fast web server @ ELS2015
ย 
Lares from LOW to PWNED
Lares from LOW to PWNEDLares from LOW to PWNED
Lares from LOW to PWNED
ย 
Apache Solr - Enterprise search platform
Apache Solr - Enterprise search platformApache Solr - Enterprise search platform
Apache Solr - Enterprise search platform
ย 
Messaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new frameworkMessaging, interoperability and log aggregation - a new framework
Messaging, interoperability and log aggregation - a new framework
ย 
The return of an old enemy
The return of an old enemyThe return of an old enemy
The return of an old enemy
ย 
Introduction to Apache Lucene/Solr
Introduction to Apache Lucene/SolrIntroduction to Apache Lucene/Solr
Introduction to Apache Lucene/Solr
ย 
Elasticsearch Basics
Elasticsearch BasicsElasticsearch Basics
Elasticsearch Basics
ย 
Service stack all the things
Service stack all the thingsService stack all the things
Service stack all the things
ย 
Solr at zvents 6 years later & still going strong
Solr at zvents   6 years later & still going strongSolr at zvents   6 years later & still going strong
Solr at zvents 6 years later & still going strong
ย 
Search onhadoopsfhug081413
Search onhadoopsfhug081413Search onhadoopsfhug081413
Search onhadoopsfhug081413
ย 
How to Write the Fastest JSON Parser/Writer in the World
How to Write the Fastest JSON Parser/Writer in the WorldHow to Write the Fastest JSON Parser/Writer in the World
How to Write the Fastest JSON Parser/Writer in the World
ย 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
ย 
Elastic pivorak
Elastic pivorakElastic pivorak
Elastic pivorak
ย 
Kinesis and Spark Streaming - Advanced AWS Meetup - August 2014
Kinesis and Spark Streaming - Advanced AWS Meetup - August 2014Kinesis and Spark Streaming - Advanced AWS Meetup - August 2014
Kinesis and Spark Streaming - Advanced AWS Meetup - August 2014
ย 
Scaling with swagger
Scaling with swaggerScaling with swagger
Scaling with swagger
ย 

Recently uploaded

CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
anilsa9823
ย 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
ย 
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
ย 

Recently uploaded (20)

How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
ย 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
ย 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlanโ€™s ...
ย 
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธCALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online  โ˜‚๏ธ
CALL ON โžฅ8923113531 ๐Ÿ”Call Girls Kakori Lucknow best sexual service Online โ˜‚๏ธ
ย 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
ย 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
ย 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
ย 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
ย 
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธcall girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
call girls in Vaishali (Ghaziabad) ๐Ÿ” >เผ’8448380779 ๐Ÿ” genuine Escort Service ๐Ÿ”โœ”๏ธโœ”๏ธ
ย 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
ย 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
ย 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
ย 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
ย 
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )๐Ÿ” 9953056974๐Ÿ”(=)/CALL GIRLS SERVICE
ย 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
ย 
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS LiveVip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida โžก๏ธ Delhi โžก๏ธ 9999965857 No Advance 24HRS Live
ย 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
ย 
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spacesย - and Epistemic Querying of RDF-...
ย 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
ย 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
ย 

The ultimate guide for Elasticsearch plugins

Editor's Notes

  1. About me โ€“ freelancing, consultant, lucene.net committer Rationale: Elasticsearch can do search, aggregations, percolation and at scale Sometimes we need more than that This talk: birds eye view. Covering a lot of ground here. From experience Skim over EXPERT features
  2. Rationale: Elasticsearch can do search, aggregations, percolation and at scale
  3. Elasticsearch in a nutshell: REST, JSON wrapping Lucene Cluster forming and cluster metadata Server distributes Lucene shards (replication, sharding, multi-tenancy)
  4. Not so interesting since ES discourages the use of them. There are lighter implementations Only applicable for query_string queries Have to be done via code, example will follow
  5. Analysis chain very important for indexing Some queries will still go through the analysis chain (Match family etc)
  6. What is the analysis chain? Splitting words Query term should match the indexed term. Term query is the most basic unit. Stop words obsolete => common words query Term query is the most basic building block of a query. Term match is what we need to have
  7. What is the analysis chain? Splitting words Query term should match the indexed term. Term query is the most basic unit. Stop words obsolete => common words query Term query is the most basic building block of a query. Term match is what we need to have
  8. Analysis chain should generally match in both ends There scenarios where they differ on purpose This is why you can set search_analyzer & index_analyzer
  9. Importance of proper tokenization Discussion: on what characters should we tokenize? The curious case of email addresses This is why you probably want to roll your own analyzer if you are doing a lot of FTS
  10. To finalize my case
  11. Some basic analyzers shipping with Lucene
  12. What happens when you try to From code โ€“ custom analyzers, token filters & token filters that you can use
  13. Hebrew is a tough language to tackle HebMorph - Open-source solution (AGPL3) Requires auxiliary files
  14. Powered by MVEL โ€“ Java-like syntax Other languages include Groovy, JS, Python You _could_ implement your own scripting engine Dynamic scripting disabled by default Scripts need to be loaded from disk
  15. Function score query: lookup Brittaโ€™s talk Similarity: replacement for TF/IDF. Out of the box: BM25, DFR, IB and more EXPERT EXPERT EXPERT
  16. EXPERT ONLY Lucene 4.0 feature Can provide performance boosts for searches and aggregations
  17. Zoom out In the integration point Stats, management, โ€ฆ
  18. Some of the built-in features Roll your own if needed Con: requires tons of testing, multiple deciders are at play
  19. Thanks to Found A way to expose new plugin functionality to consumers not using Java Or leverage the HTTP server capabilities of ES for your requirements Parsing request, performing action, creating and sending response
  20. Better query filtering for performance (less queries) Highlighting More logs + custom logs Various other optimizations
  21. A la significant terms facet We could have done this client-side only. This would have been linear in time We made this sharded Java client code Debugging
  22. A static website that can be served using ES HTTP server
  23. Multicast: the more the merrier problem Zookepper plugin โ€“ not up to date, not official Aphyrโ€™s finding re partial partitions
  24. The idea behind them Why rivers are obsolete: node comes down, backlog Always prefer push over pull Official guidance is not to use them going forward
  25. Plugin names specify the folder name under /plugins Node info API can provide
  26. Donโ€™t be that guy: ignore the urge to write custom stuff The defaults are good + A lot can be done w/ scripting Basically, when you really need custom distributed behavior Or REST endpoint exposed cluster wise Or EXPERT FEATURES
  27. Aux data โ€“ open ES ticket for enabling analyzers to read docs
  28. JAR (has to be JVM code) Boilerplate setup and code Modules; AnalysisBinderProcessor; TransportActions; RestActions; Everything in Elasticsearch is implemented as an Action Client / server reuse of request/response classes, when in Java
  29. Summary