The Elasticsearch Query DSL is a rich, flexible, powerful query language for full text and structured search, but with power comes complexity. Which of the 40 available queries should you use? What's a filter and when should you use it? How do you combine multiple filters, or multiple queries or queries with filters?
To most users, "relevance", and how it is affected by different queries, is a black box. Multi-field queries in particular can be difficult to get right if you don't understand how they work.
In this talk, I will explain the Query DSL from the ground up: how filters and queries use the inverted index to find matching documents, how the relevance score is calculated, how to combine the filter/query building blocks into complex statements. And finally, I will talk about the pitfalls of multi-field queries and how to avoid them.
Common Java wisdom is to use PreparedStatements and Batch DML in order to achieve top performance.
It turns out one cannot just blindly follow the best practices. In order to get high throughput, you need
to understand the specifics of the database in question, and the content of the data.
In the talk we will see how proper usage of PostgreSQL protocol enables high performance operation while fetching
and storing the data. We will see how trivial application and/or JDBC driver code changes can result
in dramatic performance improvements. We will examine how server-side prepared statements should be activated,
and discuss pitfalls of using server-prepared statements.
Using advanced options in MariaDB Connector/JMariaDB plc
MariaDB Connector/J is our widely used Type 4 JDBC driver for Java. This session covers the basics of getting started with Java and MariaDB, and moves quickly to more advanced topics, including connection pooling, automatic failover and debugging. Diego Dupin also includes an overview of popular object/relational mapping (ORM) and programming frameworks for Java. Even if you have been using the MariaDB Connector/J for years, come to this session to learn about the latest release, see where the connector is going and discover the latest tips and tricks.
A presentation on our experience at Ingram Content Group with Grafana and MySQL. In an enterprise environment it is sometimes necessary to keep data in a traditional, general purpose SQL database such as MySQL or PostgreSQL. These slides explore the challenges and benefits of using Grafana with an SQL database in a large enterprise production setting.
It contains a comprehensive list of questions commonly asked during Java interviews. It includes questions on topics such as object-oriented programming, multi-threading, collections, garbage collection, memory management, exception handling, and much more.
Deep learning has come a long way over the past few years, with advances in cloud computing, frameworks, and open source tooling, working with images has gotten simpler over time. Delta Lake has been amazing at creating a tabular structured transactional layer on object storage, but what about images? Would you like to know how to gain a 45x improvement in your image processing pipeline? Join Jason and Rohit to find out how!
Common Java wisdom is to use PreparedStatements and Batch DML in order to achieve top performance.
It turns out one cannot just blindly follow the best practices. In order to get high throughput, you need
to understand the specifics of the database in question, and the content of the data.
In the talk we will see how proper usage of PostgreSQL protocol enables high performance operation while fetching
and storing the data. We will see how trivial application and/or JDBC driver code changes can result
in dramatic performance improvements. We will examine how server-side prepared statements should be activated,
and discuss pitfalls of using server-prepared statements.
Using advanced options in MariaDB Connector/JMariaDB plc
MariaDB Connector/J is our widely used Type 4 JDBC driver for Java. This session covers the basics of getting started with Java and MariaDB, and moves quickly to more advanced topics, including connection pooling, automatic failover and debugging. Diego Dupin also includes an overview of popular object/relational mapping (ORM) and programming frameworks for Java. Even if you have been using the MariaDB Connector/J for years, come to this session to learn about the latest release, see where the connector is going and discover the latest tips and tricks.
A presentation on our experience at Ingram Content Group with Grafana and MySQL. In an enterprise environment it is sometimes necessary to keep data in a traditional, general purpose SQL database such as MySQL or PostgreSQL. These slides explore the challenges and benefits of using Grafana with an SQL database in a large enterprise production setting.
It contains a comprehensive list of questions commonly asked during Java interviews. It includes questions on topics such as object-oriented programming, multi-threading, collections, garbage collection, memory management, exception handling, and much more.
Deep learning has come a long way over the past few years, with advances in cloud computing, frameworks, and open source tooling, working with images has gotten simpler over time. Delta Lake has been amazing at creating a tabular structured transactional layer on object storage, but what about images? Would you like to know how to gain a 45x improvement in your image processing pipeline? Join Jason and Rohit to find out how!
There are parallels between storing JSON data in PostgreSQL and storing vectors that are produced from AI/ML systems. This lightning talk briefly covers the similarities in use-cases in storing JSON and vectors in PostgreSQL, shows some of the use-cases developers have for querying vectors in Postgres, and some roadmap items for improving PostgreSQL as a vector database.
JavaScript Module Patterns: How to build and use JavaScript modules. We cover the Basic Module Pattern, Revealing Module Pattern, CommonJS, AMD, CommonJS, UMD and ES6 modules.
EXPLAIN ANALYZE is a new query profiling tool first released in MySQL 8.0.18. This presentation covers how this new feature works, both on the surface and on the inside, and how you can use it to better understand your queries, to improve them and make them go faster.
This presentation is for everyone who has ever had to understand why a query is executed slower than anticipated, and for everyone who wants to learn more about query plans and query execution in MySQL.
Lambda and Stream Master class - part 1José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This first part covers Lambda Expressions and API design with functional interfaces.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
The Impact of Columnar File Formats on SQL-on-Hadoop Engine Performance: A St...t_ivanov
Columnar file formats provide an efficient way to store data to be queried by SQL-on-Hadoop engines. Related works consider the performance of processing engine and file format together, which makes it impossible to predict their individual impact. In this work, we propose an alternative approach: by executing each file format on the same processing engine, we compare the different file formats as well as their different parameter settings. We apply our strategy to two processing engines, Hive and SparkSQL, and evaluate the performance of two columnar file formats, ORC and Parquet. We use BigBench (TPCx-BB), a standardized application-level benchmark for Big Data scenarios. Our experiments confirm that the file format selection and its configuration significantly affect the overall performance. We show that ORC generally performs better on Hive, whereas Parquet achieves best performance with SparkSQL. Using ZLIB compression brings up to 60.2% improvement with ORC, while Parquet achieves up to 7% improvement with Snappy. Exceptions are the queries involving text processing, which do not benefit from using any compression.
From Query Plan to Query Performance: Supercharging your Apache Spark Queries...Databricks
The SQL tab in the Spark UI provides a lot of information for analysing your spark queries, ranging from the query plan, to all associated statistics. However, many new Spark practitioners get overwhelmed by the information presented, and have trouble using it to their benefit. In this talk we want to give a gentle introduction to how to read this SQL tab. We will first go over all the common spark operations, such as scans, projects, filter, aggregations and joins; and how they relate to the Spark code written. In the second part of the talk we will show how to read the associated statistics to pinpoint performance bottlenecks.
Over 200 Pages of resources and code snippets to learn JavaScript and JavaScript DOM manipulation. JavaScript is the most popular web programming language and this eBook will help you learn more about JavaScript Coding
METHODS DESCRIPTION
copy() They copy() method returns a shallow copy of the dictionary.
clear() The clear() method removes all items from the dictionary.
pop() Removes and returns an element from a dictionary having the given key.
popitem() Removes the arbitrary key-value pair from the dictionary and returns it as tuple.
get() It is a conventional method to access a value for a key.
dictionary_name.values() returns a list of all the values available in a given dictionary.
str() Produces a printable string representation of a dictionary.
update() Adds dictionary dict2’s key-values pairs to dict
setdefault() Set dict[key]=default if key is not already in dict
keys() Returns list of dictionary dict’s keys
items() Returns a list of dict’s (key, value) tuple pairs
has_key() Returns true if key in dictionary dict, false otherwise
fromkeys() Create a new dictionary with keys from seq and values set to value.
type() Returns the type of the passed variable.
cmp() Compares elements of both dict.
DocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer Simonlucenerevolution
See conference video - http://www.lucidimagination.com/devzone/events/conferences/revolution/2011
Lucene 4.0 is on its way to deliver a tremendous amount of new features and improvements. Beside
Real-Time Search & Flexible Indexing DocValues aka. Column Stride Fields is one of the “next
generation” features. DocValues enable Lucene to efficiently store and retrieve type-safe Document
& Value pairs in a column stride fashion either entirely memory resident random access or disk
resident iterator based without the need to un-invert fields. Its final goal is to provide a
independently update-able per document storage for scoring, sorting or even filtering. This talk will
introduce the current state of development, implementation details, its features and how DocValues
have been integrated into Lucene’s Codec API for full extendability.
Introduction to Elasticsearch SearchingBo Andersen
Check out my Elasticsearch course and get it for only $10:
https://www.udemy.com/elasticsearch-complete-guide/?couponCode=SLIDESHARE10&utm_source=slideshare&utm_campaign=slideshare&utm_medium=referral
Check out my Elasticsearch course and get it for only $10:
https://www.udemy.com/elasticsearch-complete-guide/?couponCode=SLIDESHARE10&utm_source=slideshare&utm_campaign=slideshare&utm_medium=referral
There are parallels between storing JSON data in PostgreSQL and storing vectors that are produced from AI/ML systems. This lightning talk briefly covers the similarities in use-cases in storing JSON and vectors in PostgreSQL, shows some of the use-cases developers have for querying vectors in Postgres, and some roadmap items for improving PostgreSQL as a vector database.
JavaScript Module Patterns: How to build and use JavaScript modules. We cover the Basic Module Pattern, Revealing Module Pattern, CommonJS, AMD, CommonJS, UMD and ES6 modules.
EXPLAIN ANALYZE is a new query profiling tool first released in MySQL 8.0.18. This presentation covers how this new feature works, both on the surface and on the inside, and how you can use it to better understand your queries, to improve them and make them go faster.
This presentation is for everyone who has ever had to understand why a query is executed slower than anticipated, and for everyone who wants to learn more about query plans and query execution in MySQL.
Lambda and Stream Master class - part 1José Paumard
These are the slides of the talk we made with Stuart Marks at Devoxx Belgium 2018. This first part covers Lambda Expressions and API design with functional interfaces.
What is the state of lambda expressions in Java 11? Lambda expressions are the major feature of Java 8, having an impact on most of the API, including the Streams and Collections API. We are now living the Java 11 days; new features have been added and new patterns have emerged. This highly technical Deep Dive session will visit all these patterns, the well-known ones and the new ones, in an interactive hybrid of lecture and laboratory. We present a technique and show how it helps solve a problem. We then present another problem, and give you some time to solve it yourself. Finally, we present a solution, and open for questions, comments, and discussion. Bring your laptop set up with JDK 11 and your favorite IDE, and be prepared to think!
The Impact of Columnar File Formats on SQL-on-Hadoop Engine Performance: A St...t_ivanov
Columnar file formats provide an efficient way to store data to be queried by SQL-on-Hadoop engines. Related works consider the performance of processing engine and file format together, which makes it impossible to predict their individual impact. In this work, we propose an alternative approach: by executing each file format on the same processing engine, we compare the different file formats as well as their different parameter settings. We apply our strategy to two processing engines, Hive and SparkSQL, and evaluate the performance of two columnar file formats, ORC and Parquet. We use BigBench (TPCx-BB), a standardized application-level benchmark for Big Data scenarios. Our experiments confirm that the file format selection and its configuration significantly affect the overall performance. We show that ORC generally performs better on Hive, whereas Parquet achieves best performance with SparkSQL. Using ZLIB compression brings up to 60.2% improvement with ORC, while Parquet achieves up to 7% improvement with Snappy. Exceptions are the queries involving text processing, which do not benefit from using any compression.
From Query Plan to Query Performance: Supercharging your Apache Spark Queries...Databricks
The SQL tab in the Spark UI provides a lot of information for analysing your spark queries, ranging from the query plan, to all associated statistics. However, many new Spark practitioners get overwhelmed by the information presented, and have trouble using it to their benefit. In this talk we want to give a gentle introduction to how to read this SQL tab. We will first go over all the common spark operations, such as scans, projects, filter, aggregations and joins; and how they relate to the Spark code written. In the second part of the talk we will show how to read the associated statistics to pinpoint performance bottlenecks.
Over 200 Pages of resources and code snippets to learn JavaScript and JavaScript DOM manipulation. JavaScript is the most popular web programming language and this eBook will help you learn more about JavaScript Coding
METHODS DESCRIPTION
copy() They copy() method returns a shallow copy of the dictionary.
clear() The clear() method removes all items from the dictionary.
pop() Removes and returns an element from a dictionary having the given key.
popitem() Removes the arbitrary key-value pair from the dictionary and returns it as tuple.
get() It is a conventional method to access a value for a key.
dictionary_name.values() returns a list of all the values available in a given dictionary.
str() Produces a printable string representation of a dictionary.
update() Adds dictionary dict2’s key-values pairs to dict
setdefault() Set dict[key]=default if key is not already in dict
keys() Returns list of dictionary dict’s keys
items() Returns a list of dict’s (key, value) tuple pairs
has_key() Returns true if key in dictionary dict, false otherwise
fromkeys() Create a new dictionary with keys from seq and values set to value.
type() Returns the type of the passed variable.
cmp() Compares elements of both dict.
DocValues aka. Column Stride Fields in Lucene 4.0 - By Willnauer Simonlucenerevolution
See conference video - http://www.lucidimagination.com/devzone/events/conferences/revolution/2011
Lucene 4.0 is on its way to deliver a tremendous amount of new features and improvements. Beside
Real-Time Search & Flexible Indexing DocValues aka. Column Stride Fields is one of the “next
generation” features. DocValues enable Lucene to efficiently store and retrieve type-safe Document
& Value pairs in a column stride fashion either entirely memory resident random access or disk
resident iterator based without the need to un-invert fields. Its final goal is to provide a
independently update-able per document storage for scoring, sorting or even filtering. This talk will
introduce the current state of development, implementation details, its features and how DocValues
have been integrated into Lucene’s Codec API for full extendability.
Introduction to Elasticsearch SearchingBo Andersen
Check out my Elasticsearch course and get it for only $10:
https://www.udemy.com/elasticsearch-complete-guide/?couponCode=SLIDESHARE10&utm_source=slideshare&utm_campaign=slideshare&utm_medium=referral
Check out my Elasticsearch course and get it for only $10:
https://www.udemy.com/elasticsearch-complete-guide/?couponCode=SLIDESHARE10&utm_source=slideshare&utm_campaign=slideshare&utm_medium=referral
Check out my Elasticsearch course and get it for only $10:
https://www.udemy.com/elasticsearch-complete-guide/?couponCode=SLIDESHARE10&utm_source=slideshare&utm_campaign=slideshare&utm_medium=referral
Check out my Elasticsearch course and get it for only $10:
https://www.udemy.com/elasticsearch-complete-guide/?couponCode=SLIDESHARE10&utm_source=slideshare&utm_campaign=slideshare&utm_medium=referral
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...NoSQLmatters
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…
The Elasticsearch Query DSL is a rich, flexible, powerful query language for full text and structured search, but with power comes complexity. Which of the 40 available queries should you use? What's a filter and when should you use it? How do you combine multiple filters, or multiple queries or queries with filters?To most users, "relevance", and how it is affected by different queries, is a black box. Multi-field queries in particular can be difficult to get right if you don't understand how they work. In this talk, I will explain the Query DSL from the ground up: how filters and queries use the inverted index to find matching documents, how the relevance score is calculated, how to combine the filter/query building blocks into complex statements. And finally, I will talk about the pitfalls of multi-field queries and how to avoid them.
Scaling real-time search and analytics with Elasticsearchclintongormley
See the video here: https://www.youtube.com/watch?v=o6lSeNatVFM
A look at the elements required by Elasticsearch to turn a simple inverted index into an auto-clustering, horizontally scalable real time search and analytics engine. The talk will start from first principles, explaining how an inverted index works, how to make an inverted index suitable for real time search, how to scale that out, and how to add reliability and failover to the cluster.
OSMC 2014 | Using Elasticsearch, Logstash & Kibana in system administration b...NETWAYS
Diese Präsentation wird ELK - eine Kombination aus Elasticsearch, Logstash und Kibana - vorstellen und einen Überblick über die einzelnen Produkte geben. Im Anschluss werden wir anhand von Demos tiefer in die Materie eindringen und aufzeigen, wie jedermann den ELK Stack einsetzen kann, um die Vielzahl an Sysadmin-Tasks besser zu bewältigen.
OSMC 2014: Using elasticsearch, logstash & kibana in system administration | ...NETWAYS
This talk will give an introduction into the ELK stack, which consists of Elasticsearch, Logstash and Kibana. Before giving a quick theoretical introduction about the stack we will talk about the challenges and problems when trying to extract information from logfiles, which are distributed and very different in nature.
After covering the theoritical groundwork we will dive into the practical parts of the talk. There will be several demonstrations of how to use the ELK stack to obtain useful information for system administrators from your production environment. The demonstrations will include parsing realtime streams, old fashioned logfiles as well as making sense of performance metrics.
Nicolas Grenie's presentation from HTML5 Dev Conf. 2014:
There is currently a major shift sweeping over the software industry. With each passing day the world is becoming more and more API-driven. When building an API there are many design options and Hypermedia is the new emerging way of designing APIs. Hypermedia APIs are widely used by companies such as Paypal and Amazon. In this session I will discuss the principles of Hypermedia APIs and the different ways to implement one in Node.js. I will first introduce you to a basic implementation using Express and then move on to a more advanced solution using a dedicated framework: Fortune.js. I will also share my experience of building APIbunny (http://apibunny.com), an API-driven easter game.
How to Build Interactive Training that Scales - Magnolia CMS Conference 2013Mark Halvorson
In 2011 Atlassian launched "Atlassian University", an interactive training environment for Atlassian products built entirely on Magnolia CMS. In 2013, after suffering through a series of problems, we ripped all of it out and rebuilt it from scratch in a way that will actually scale. The one piece of architecture we kept was that the guts of the system is still built on Magnolia. This talk covers the history of the system, how it was originally built, the problems we encountered, and how we eventually moved past them.
Reprising an extremely popular session from our I Love APIs 2015 conference, Apigee’s Marsh Gardiner and Martin Nally will review recent trends in API design, including topics such as hypermedia and how Swagger's opinions on API design influence common patterns. Because this is a pragmatic approach, this session will be built on real-world examples.
Keep it Secret, Keep it Safe - Docker Secrets and DIDana Luther
In this talk, we’ll go over how to leverage Docker secrets and DI (dependency injection) to keep your API keys and other credentials out of your repos and easily exposed environment variables. Examples are in the Yii framework, but the concepts can be used with anything. We’ll go over how to establish and use secrets and how to update them, as well as how to reference them from within an application or package. General knowledge of Docker basics is a plus, but you should be able to follow along even if you’re a Docker novice.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Elasticsearch Query DSL - Not just for wizards...
1. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Clinton Gormley
@clintongormley
Elasticsearch Query DSL
… not just for wizards
2. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
3. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch.org/guide
4. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
5. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
6. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
• distributed
7. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
• distributed
• search
8. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
• distributed
• search
• analytics
9. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
10. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
analysis
11. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
analysis query dsl
12. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
analysis query dsl
13. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query dsl
14. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query dsl
flexible, powerful
query language
15. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
16. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries filters
17. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
filters
• boolean yes/no
18. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
• full text
filters
• boolean yes/no
• exact values
19. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
• full text
• not cached
filters
• boolean yes/no
• exact values
• cached
20. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
• full text
• not cached
• slower
filters
• boolean yes/no
• exact values
• cached
• faster
21. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
• full text
• not cached
• slower
filters
• boolean yes/no
• exact values
• cached
• faster
Filter first, then query remaining docs
22. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
23. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{...}
}
24. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"match":
{
"title":
"search"
}}
}
25. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
match_all:
{}}
}
26. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
match_all:
{}}
}
27. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{...},
"filter":
{...}
}
}
}
28. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match":
{
"title":
"search"
}},
"filter":
{...}
}
}
}
29. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match":
{
"title":
"search"
}},
"filter":
{
"term":
{
"status":
"active"
}}
}
}
}
30. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match_all":
{}},
"filter":
{
"term":
{
"status":
"active"
}}
}
}
}
31. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match_all":
{}},
"filter":
{
"term":
{
"status":
"active"
}}
}
}
}
32. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
how data is indexed
33. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
!
34. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
!
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
35. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
!
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
where content like
“%brown%fox%”
36. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
!
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
slow & inflexible
37. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
!
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
“analysis”
38. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
!
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
39. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
[quick,brown,rabbits],
"content":
[brown,rabbits,are,commonly,seen]
}
!
{
"title":
[keeping,pets,healthy],
"content":
[my,quick,brown,fox,eats,rabbits,on,a,
regular,basis]
}
40. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
a
are
basis
brown
commonly
eats
fox
my
on
quick
rabbits
regular
seen
field: content
sorted list of
unique terms
41. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
a
are
basis
brown
commonly
eats
fox
my
on
quick
rabbits
regular
seen
field: content
where
they
occur
42. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
a
are
basis
brown
commonly
eats
fox
my
on
quick
rabbits
regular
seen
field: content
43. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
a
are
basis
brown
commonly
eats
fox
my
on
quick
rabbits
regular
seen
field: content
44. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
inverted index
45. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
inverted index
not just for text
46. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
inverted index
numbers, dates, bools, enums
geopoints, geoshapes, etc
47. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
=
"value"
48. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
CONTAINS
"value"
49. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
CONTAINS
"value"
term filter
50. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"term":
{
"title":
"brown"
}
WHERE
field
CONTAINS
"value"
51. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
!
!
!
!
}
}
52. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
!
!
}
}
}
53. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
...
},
"filter":
{
...
}
}
}
}
54. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match_all":
{}
},
"filter":
{
...
}
}
}
}
55. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match_all":
{}
},
"filter":
{
...
}
}
}
}
56. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"filtered":
{
"query":
{
"match_all":
{}
},
"filter":
{
"term":
{
"title":
"brown"
}}
}
}
}
57. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
brown
healthy
keeping
pets
quick
rabbits
field: title
58. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
brown
healthy
keeping
pets
quick
rabbits
field: title
59. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"term":
{
"title":
"brown"
}
60. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"term":
{
"title":
"brown"
}
➔
result:
bitset[
1,
0
]
61. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"term":
{
"title":
"brown"
}
➔
result:
bitset[
1,
0
]
➔
cache
as:
"title:brown"
62. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
IN
["val",…]
63. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
IN
["val",…]
terms filter
64. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"terms":
{
"title":
["quick",
"pets"]
}
WHERE
field
IN
["val",…]
65. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
brown
healthy
keeping
pets
quick
rabbits
field: title
66. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"terms":
{
"title":
["quick","pets"]
}
➔
result:
bitset[
1,
1
]
➔
cache
as:
"title:quick
title:pets"
67. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
>=
"val1"
AND
field
<
"val2"
68. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
>=
"val1"
AND
field
<
"val2"
range filter
69. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"range":
{
"content":{
"gte":
"a",
"lt":
"m"
}
}
WHERE
field
>=
"val1"
AND
field
<
"val2"
70. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term Doc
1 Doc
2
a
are
basis
brown
commonly
eats
fox
my
on
quick
rabbits
regular
seen
field: content
71. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
➔
result:
bitset[
1,
1
]
➔
cache
as:
"content:[a
TO
m}"
"range":
{
"content":{
"gte":
"a",
"lt":
"m"
}
}
72. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"range":
{
"date":{
"gte":
"2014-‐01-‐01",
"lt":
"2041-‐02-‐01"
}
}
73. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"range":
{
"date":{
"gte":
"2014-‐01-‐01",
"lt":
"2041-‐02-‐01"
}
}
numeric/date fields
optimised
for range filters
74. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"range":
{
"date":{
"gte":
"now
-‐
1h"
}
}
75. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"range":
{
"date":{
"gte":
"now
-‐
1h"
}
}
not cached
76. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"range":
{
"date":{
"gte":
"now
-‐
1h
/
h"
}
}
cached
77. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
IS
NOT
NULL
78. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
has
any
term
79. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE
field
has
any
term
exists filter
80. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"exists":
{
"field":
"title"
}
WHERE
field
has
any
term
81. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
missing filter
WHERE
field
has
no
term
82. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"missing":
{
"field":
"title"
}
WHERE
field
has
no
term
83. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND
…
OR
…
NOT
84. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND
…
OR
…
NOT
bool filter
85. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<filters>
],
"should":
[
<filters>
],
"must_not":
[
<filters>
]
}
86. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<filters>
],
#
AND
"should":
[
<filters>
],
"must_not":
[
<filters>
]
}
87. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<filters>
],
"should":
[
<filters>
],
#
OR
"must_not":
[
<filters>
]
}
88. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<filters>
],
"should":
[
<filters>
],
"must_not":
[
<filters>
]
#
NOT
}
89. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
{
"term":
{
"title":
"rabbits"
}},
!
!
!
!
!
}
95. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
result
bitset
=
!
(title:rabbits
OR
content:rabbits)
AND
(title:quick
OR
content:quick)
AND
NOT
content:fox
96. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
filters
• boolean yes/no
• exact values
• cached
• faster
Filter first, then query
97. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
how relevant is this term?
98. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
how relevant is this term?
term query
99. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
≈ term filter + relevance
how relevant is this term?
term query
100. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"term":
{
"title":
"brown"
}
how relevant is this term?
101. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
!
!
!
}
}
102. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET
/_search
{
"query":
{
"term":
{
"title":
"brown"
}
}
}
103. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"_index":
"myindex",
"_type":
"mytype",
"_id":
"1",
"_score":
0.5,
"_source":
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
}
how relevant is this doc?
104. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
relevance score
105. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
relevance score
How common is the term in this doc?
➔ more is better
106. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
relevance score
How common is the term in this doc?
➔ more is better
How common is the term in ALL docs?
➔ less is better
107. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
relevance score
How common is the term in this doc?
➔ more is better
How common is the term in ALL docs?
➔ less is better
How long is this doc?
➔ shorter is better
108. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
lucene similarity
How common is the term in this doc?
➔ more is better
How common is the term in ALL docs?
➔ less is better
How long is this doc?
➔ shorter is better
109. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
lucene similarity
How common is the term in this doc?
➔ more is better
How common is the term in ALL docs?
➔ less is better
How long is this doc?
➔ shorter is better
110. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term frequency
!
How common is the term in ALL docs?
➔ less is better
How long is this doc?
➔ shorter is better
lucene similarity
111. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term frequency
!
How common is the term in ALL docs?
➔ less is better
How long is this doc?
➔ shorter is better
lucene similarity
112. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term frequency
!
Inverse document frequency
!
How long is this doc?
➔ shorter is better
lucene similarity
113. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term frequency
!
Inverse document frequency
!
How long is this doc?
➔ shorter is better
lucene similarity
114. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term frequency
!
Inverse document frequency
!
Length norm
lucene similarity
115. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND
…
OR
…
NOT
116. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND
…
OR
…
NOT
bool query
117. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
like bool filter, but different...
AND
…
OR
…
NOT
bool query
118. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<queries>
],
#
AND
"should":
[
<queries>
],
"must_not":
[
<queries>
]
#
NOT
}
119. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<queries>
],
#
AND
"should":
[
<queries>
],
#
Hmmm
"must_not":
[
<queries>
]
#
NOT
}
120. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
[
<queries>
],
#
AND
"should":
[
<queries>
],
#
Hmmm
"must_not":
[
<queries>
],
#
NOT
"minimum_should_match":
?
#
Hmmm
}
127. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bool
filter
➔
T/F
!
128. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bool
filter
➔
T/F
!
bool
query
➔
_score
129. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
_score
of
bool
query
=
130. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
_score
of
bool
query
=
sum(
_score
of
each
query)
131. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
_score
of
bool
query
=
sum(
_score
of
each
query)
*
num
of
matching
queries
132. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
_score
of
bool
query
=
sum(
_score
of
each
query)
*
num
of
matching
queries
/
num
of
queries
133. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
more matching should queries
134. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
more matching should queries
==
better relevance score
135. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
trim the long tail
"bool":
{
"should":
[
{
"term":
{
"title":
"quick"
}},
{
"term":
{
"title":
"brown"
}},
{
"term":
{
"title":
"rabbits"
}}
]
}
136. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
trim the long tail
"bool":
{
"should":
[
{
"term":
{
"title":
"quick"
}},
{
"term":
{
"title":
"brown"
}},
{
"term":
{
"title":
"rabbits"
}}
],
"minimum_should_match":
"75%"
}
137. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
trim the long tail
"bool":
{
"should":
[
{
"term":
{
"title":
"quick"
}},
{
"term":
{
"title":
"brown"
}},
{
"term":
{
"title":
"rabbits"
}}
],
"minimum_should_match":
"75%"
#
2
of
3
}
138. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
139. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
high level query
140. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
high level query
understands mapping & analysis
141. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
➔ analyze query string
➔ rewrite query
142. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
one word query
143. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match":
{
"title":
"QUICK!"
}}
144. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match":
{
"title":
"QUICK!"
}}
title:quick
145. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match":
{
"title":
"QUICK!"
}}
title:quick
{
"term":
{
"title":
"quick"
}}
146. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
multi word query
147. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match":
{
"title":
"QUICK
FOX!"
}}
148. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match":
{
"title":
"QUICK
FOX!"
}}
title:quick
OR
title:fox
159. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
fuzzy queries
160. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
fuzzy queries
levenshtein edit distance
161. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron
➔
brown
insertion
162. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron
➔
brown
foxs
➔
fox
deletion
163. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron
➔
brown
foxs
➔
fox
kiuck
➔
qiuck
substitution
164. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron
➔
brown
foxs
➔
fox
kiuck
➔
qiuck
➔
quick
transposition
165. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match":
{
"title":
{
"query":
"KIUCK
BRON
FOXS!",
"fuzziness":
"AUTO"
}
}
166. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
phrase / proximity
167. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match_phrase":
{
"title":"QUICK
BROWN
FOX!"
}
}
168. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"match_phrase":
{
"title":
{
"query":
"BROWN
QUICK
FOX!",
"slop":
"10"
}
}
}
169. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
combine queries
170. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
{
<min_should_match>
},
"should":
[
{
<fuzzy>
},
{
<proximity>
}
]
}
171. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
{
<min_should_match>
},
"should":
[
{
<fuzzy>
},
{
<proximity>
}
]
}
172. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
!
"match":
{
"title":
{
"query":
"<words>",
"minimum_should_match":
"75%"
}
}
!
173. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
{
<min_should_match>
},
"should":
[
{
<fuzzy>
},
{
<proximity>
}
]
}
174. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
!
"match":
{
"title":
{
"query":
"<words>",
"fuzziness":
"AUTO"
}
}
!
175. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
{
<min_should_match>
},
"should":
[
{
<fuzzy>
},
{
<proximity>
}
]
}
176. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
!
"match_phrase":
{
"title":
{
"query":
"<words>",
"slop":
"10"
}
}
!
177. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"must":
{
<min_should_match>
},
"should":
[
{
<fuzzy>
},
{
<proximity>
}
]
}
178. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
multi-field queries
179. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
180. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
easy!
182. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
183. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
hard!
184. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"should":
[
{
"match":
{
"title":
"quick
brown
fox"
}},
{
"match":
{
"content":
"quick
brown
fox"
}}
]
}
185. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
186. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
better match
187. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
But 2 matches wins
188. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
dis_max query
189. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
all docs which match any query
dis_max query
190. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
all docs which match any query
dis_max query
_score
=
best
matching
query
191. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":
{
"should":
[
{
"match":
{
"title":
"quick
brown
fox"
}},
{
"match":
{
"content":
"quick
brown
fox"
}}
]
}
192. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"dis_max":
{
"queries":
[
{
"match":
{
"title":
"quick
brown
fox"
}},
{
"match":
{
"content":
"quick
brown
fox"
}}
]
}
193. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
194. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"title":
"Quick
brown
rabbits",
"content":
"Brown
rabbits
are
commonly
seen"
}
{
"title":
"Keeping
pets
healthy",
"content":
"My
quick
brown
fox
eats
rabbits
on
a
regular
basis"
}
195. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"dis_max":
{
"queries":
[
{
"match":
{
"title":
"quick
brown
fox"
}},
{
"match":
{
"content":
"quick
brown
fox"
}}
],
"tie_breaker":
0.2
}
196. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
all docs which match any query
dis_max query
_score
=
best
matching
query
+
tie_breaker
*
others
197. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
multi_match query
198. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query on multiple fields
multi_match query
199. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"dis_max":
{
"queries":
[
{
"match":
{
"title":
"quick
brown
fox"
}},
{
"match":
{
"content":
"quick
brown
fox"
}}
],
"tie_breaker":
0.2
}
200. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"quick
brown
fox",
"fields":
[
"title",
"content"
]
"tie_breaker":
0.2
}
201. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"quick
brown
fox",
"fields":
[
"title",
"content"
]
"tie_breaker":
0.2,
#
"type":
"best_fields"
}
202. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
best_fields
203. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
find whole "concept" in one field
best_fields
204. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"quick brown fox" in title or content
best_fields
205. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
best_fields
dis_max
"quick brown fox" in title or content
206. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"title":
{
"type":
"string"
}
207. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"title":
{
"type":
"string",
"fields":
{
!
!
!
!
!
!
!
}}
213. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"quick
brown
fox",
"fields":
[
"title",
"title.stemmed",
"title.autocomplete"
]
"type":
"most_fields"
}
214. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
215. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
match same text
analyzed in different ways
216. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
more matching fields = better
217. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
bool
more matching fields = better
218. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{
"first":
"Reginald",
"middle":
"Kenneth"
"last":
"Dwight"
}
219. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"Reginald
Kenneth
Dwight",
"fields":
[
"first",
"middle",
"last"
]
!
}
220. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"Reginald
Kenneth
Dwight",
"fields":
[
"first",
"middle",
"last"
]
"type":
"????"
}
221. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"Reginald
Kenneth
Dwight",
"fields":
[
"first",
"middle",
"last"
]
"type":
"most_fields"
}
222. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"Reginald
Kenneth
Dwight",
"fields":
[
"first",
"middle",
"last"
]
"type":
"most_fields"
}
223. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
224. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
field centric
225. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
(
first:
Reginald
OR
first:
Kenneth
OR
first:
Dwight
)
OR
(
middle:Reginald
OR
middle:Kenneth
OR
middle:Dwight
)
OR
(
last:
Reginald
OR
last:
Kenneth
OR
last:
Dwight
)
226. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
(
first:
Reginald
OR
first:
Kenneth
OR
first:
Dwight
)
OR
(
middle:Reginald
OR
middle:Kenneth
OR
middle:Dwight
)
OR
(
last:
Reginald
OR
last:
Kenneth
OR
last:
Dwight
)
227. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
228. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
operator: and
229. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
(
first:
Reginald
AND
first:
Kenneth
AND
first:
Dwight
)
OR
(
middle:Reginald
AND
middle:Kenneth
AND
middle:Dwight
)
OR
(
last:
Reginald
AND
last:
Kenneth
AND
last:
Dwight
)
230. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
(
first:
Reginald
AND
first:
Kenneth
AND
first:
Dwight
)
OR
(
middle:Reginald
AND
middle:Kenneth
AND
middle:Dwight
)
OR
(
last:
Reginald
AND
last:
Kenneth
AND
last:
Dwight
)
231. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
232. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
term frequencies
233. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
term frequencies
first:dwight
➔
common
234. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
term frequencies
first:dwight
➔
common
last:
dwight
➔
uncommon
235. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
solution
236. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
index time solution
237. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
index time solution
single "fullname" field
238. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"first":
{
"type":
"string"
},
"middle":
{
"type":
"string"
},
"last":
{
"type":
"string"
}
!
241. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"match":
{
"full":
"Reginald
Kenneth
Dwight",
"minimum_should_match":
"75%"
}
242. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query time solution
243. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query time solution
term-centric query
244. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
(
first:
Reginald
AND
first:
Kenneth
AND
first:
Dwight
)
OR
(
middle:Reginald
AND
middle:Kenneth
AND
middle:Dwight
)
OR
(
last:
Reginald
AND
last:
Kenneth
AND
last:
Dwight
)
245. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
(
first:
Reginald
OR
middle:Reginald
OR
last:
Reginald
)
AND
(
first:
Kenneth
OR
middle:Kenneth
OR
last:
Kenneth
)
AND
(
first:
Dwight
OR
middle:Dwight
OR
last:
Dwight
)
246. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
blend(first,middle,last):Reginald
AND
blend(first,middle,last):Kenneth
AND
blend(first,middle,last):Dwight
247. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
blend(first,middle,last):Reginald
AND
blend(first,middle,last):Kenneth
AND
blend(first,middle,last):Dwight
blends term frequencies
248. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
cross_fields
249. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
cross_fields
query multiple fields
as if they were one
250. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":
{
"query":
"Reginald
Kenneth
Dwight",
"fields":
[
"first",
"middle",
"last"
]
"type":
"cross_fields"
}
252. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
best_fields:
whole concept in single field
most_fields:
same text, different analyzers
cross_fields:
treat multiple fields as one
253. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
understand the
building blocks
254. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
the rest is details
255. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
thank you
@clintongormley
256. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
thank you
@clintongormley
elasticsearch.org/downloads
elasticsearch.com/support
elasticsearch.com/jobs