SlideShare a Scribd company logo
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Clinton Gormley
@clintongormley
Elasticsearch Query DSL
… not just for wizards
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch.org/guide
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
• distributed
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
• distributed
• search
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
elasticsearch
• real-time
• distributed
• search
• analytics
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
analysis
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
analysis query dsl
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
mapping
analysis query dsl
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query dsl
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query dsl
flexible, powerful
query language
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries filters
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
filters
• boolean yes/no
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
queries
• relevance
• full text
filters
• boolean yes/no
• exact values
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
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
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {...}	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  "match":	
  {	
  "title":	
  "search"	
  }}	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  match_all:	
  {}}	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  match_all:	
  {}}	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
	
  	
  	
  	
  "filtered":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  {...},	
  
	
  	
  	
  	
  	
  	
  "filter":	
  {...}	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
	
  	
  	
  	
  "filtered":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  {	
  "match":	
  {	
  "title":	
  	
  "search"	
  }},	
  
	
  	
  	
  	
  	
  	
  "filter":	
  {...}	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
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"	
  }}	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
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"	
  }}	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
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"	
  }}	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
how data is indexed
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  
	
  	
  "title":	
  	
  	
  "Quick	
  brown	
  rabbits",	
  
	
  	
  "content":	
  "Brown	
  rabbits	
  are	
  commonly	
  seen"	
  
}	
  
!
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"	
  
}
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%”
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
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”
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"	
  
}
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]	
  
}
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
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
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
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
inverted index
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
inverted index
not just for text
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
inverted index
numbers, dates, bools, enums
geopoints, geoshapes, etc
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  =	
  "value"
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  CONTAINS	
  "value"
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  CONTAINS	
  "value"
term filter
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  	
  "term":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "title":	
  "brown"	
  	
  
	
  	
  }
WHERE	
  field	
  CONTAINS	
  "value"
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
!
!
!
!
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
	
  	
  	
  	
  "filtered":	
  {	
  
!
!
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
	
  	
  	
  	
  "filtered":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  {	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ...	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "filter":	
  {	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ...	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
	
  	
  	
  	
  "filtered":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  {	
  "match_all":	
  {}	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "filter":	
  {	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ...	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  "query":	
  {	
  
	
  	
  	
  	
  "filtered":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  {	
  "match_all":	
  {}	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  "filter":	
  {	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ...	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
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"	
  }}	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}	
  
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
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  	
  "term":	
  {	
  "title":	
  "brown"	
  }
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  	
  "term":	
  {	
  "title":	
  "brown"	
  }
➔	
  result:	
  	
  	
  bitset[	
  1,	
  0	
  ]
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"
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  IN	
  ["val",…]
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  IN	
  ["val",…]
terms filter
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  	
  "terms":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "title":	
  ["quick",	
  "pets"]	
  	
  
	
  	
  }
WHERE	
  field	
  IN	
  ["val",…]
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
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"
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  >=	
  "val1"	
  
	
  	
  AND	
  field	
  <	
  	
  "val2"
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  >=	
  "val1"	
  
	
  	
  AND	
  field	
  <	
  	
  "val2"
range filter
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"
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
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"	
  }	
  
	
  	
  }
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  "range":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "date":{	
  	
  
	
  	
  	
  	
  	
  	
  	
  "gte":	
  "2014-­‐01-­‐01",	
  
	
  	
  	
  	
  	
  	
  	
  "lt":	
  	
  "2041-­‐02-­‐01"	
  
	
  	
  	
  	
  	
  }	
  
	
  	
  }
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  "range":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "date":{	
  	
  
	
  	
  	
  	
  	
  	
  	
  "gte":	
  "now	
  -­‐	
  1h"	
  
	
  	
  	
  	
  	
  }	
  
	
  	
  }
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  "range":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "date":{	
  	
  
	
  	
  	
  	
  	
  	
  	
  "gte":	
  "now	
  -­‐	
  1h"	
  
	
  	
  	
  	
  	
  }	
  
	
  	
  }
not cached
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  "range":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "date":{	
  	
  
	
  	
  	
  	
  	
  	
  	
  "gte":	
  "now	
  -­‐	
  1h	
  /	
  h"	
  
	
  	
  	
  	
  	
  }	
  
	
  	
  }
cached
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  IS	
  NOT	
  NULL
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  has	
  any	
  term
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
WHERE	
  field	
  has	
  any	
  term
exists filter
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"exists":	
  	
  {	
  	
  
	
  	
  "field":	
  "title"	
  
}	
  
WHERE	
  field	
  has	
  any	
  term
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
missing filter
WHERE	
  field	
  has	
  no	
  term
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"missing":	
  	
  {	
  	
  
	
  	
  "field":	
  "title"	
  
}	
  
WHERE	
  field	
  has	
  no	
  term
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND	
  …	
  OR	
  …	
  NOT
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND	
  …	
  OR	
  …	
  NOT
bool filter
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  	
  	
  	
  	
  [	
  <filters>	
  ],	
  
	
  	
  "should":	
  	
  	
  [	
  <filters>	
  ],	
  
	
  	
  "must_not":	
  [	
  <filters>	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  	
  	
  	
  	
  [	
  <filters>	
  ],	
  #	
  AND	
  
	
  	
  "should":	
  	
  	
  [	
  <filters>	
  ],	
  
	
  	
  "must_not":	
  [	
  <filters>	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  	
  	
  	
  	
  [	
  <filters>	
  ],	
  
	
  	
  "should":	
  	
  	
  [	
  <filters>	
  ],	
  #	
  OR	
  
	
  	
  "must_not":	
  [	
  <filters>	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  	
  	
  	
  	
  [	
  <filters>	
  ],	
  
	
  	
  "should":	
  	
  	
  [	
  <filters>	
  ],	
  
	
  	
  "must_not":	
  [	
  <filters>	
  ]	
  	
  #	
  NOT	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }},	
  
!
!
!
!
!
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }},	
  
	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "quick"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "quick"	
  }}	
  
	
  	
  ],	
  
!
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }},	
  
	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "quick"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "quick"	
  }}	
  
	
  	
  ],	
  
	
  	
  "must_not":	
  {	
  "term":	
  {	
  "content":	
  "fox"	
  }}	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  [	
  
	
  	
  	
  	
  {	
  "bool":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "rabbits"	
  }},	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "rabbits"	
  }}	
  
	
  	
  	
  	
  ]}},	
  
	
  	
  	
  	
  {	
  "bool":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "quick"	
  }}	
  
	
  	
  	
  	
  ]}}	
  
	
  	
  ],	
  
	
  	
  "must_not":	
  {	
  "term":	
  {	
  "content":	
  "fox"	
  }}	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  [	
  
	
  	
  	
  	
  {	
  "bool":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "rabbits"	
  }},	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "rabbits"	
  }}	
  
	
  	
  	
  	
  ]}},	
  
	
  	
  	
  	
  {	
  "bool":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "quick"	
  }}	
  
	
  	
  	
  	
  ]}}	
  
	
  	
  ],	
  
	
  	
  "must_not":	
  {	
  "term":	
  {	
  "content":	
  "fox"	
  }}	
  
}
not cached
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  [	
  
	
  	
  	
  	
  {	
  "bool":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "rabbits"	
  }},	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "rabbits"	
  }}	
  
	
  	
  	
  	
  ]}},	
  
	
  	
  	
  	
  {	
  "bool":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  	
  "should":	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  	
  	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "content":	
  "quick"	
  }}	
  
	
  	
  	
  	
  ]}}	
  
	
  	
  ],	
  
	
  	
  "must_not":	
  {	
  "term":	
  {	
  "content":	
  "fox"	
  }}	
  
}
cached
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	
  
	
  	
  	
  
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
how relevant is this term?
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
how relevant is this term?
term query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
≈ term filter + relevance
how relevant is this term?
term query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
	
  	
  "term":	
  	
  {	
  	
  
	
  	
  	
  	
  	
  "title":	
  "brown"	
  	
  
	
  	
  }
how relevant is this term?
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  	
  "query":	
  {	
  
!
!
!
	
  	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
GET	
  /_search
{	
  
	
  	
  	
  "query":	
  {	
  
	
  	
  	
  	
  	
  	
  "term":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "title":	
  "brown"	
  	
  
	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  }	
  
}	
  
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?
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
relevance score
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
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
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
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
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
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
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
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
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Term frequency
!
Inverse document frequency
!
Length norm
lucene similarity
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND	
  …	
  OR	
  …	
  NOT
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
AND	
  …	
  OR	
  …	
  NOT
bool query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
like bool filter, but different...
AND	
  …	
  OR	
  …	
  NOT
bool query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  	
  
	
  	
  "must":	
  	
  	
  	
  	
  [	
  <queries>	
  ],	
  #	
  AND	
  
	
  	
  "should":	
  	
  	
  [	
  <queries>	
  ],	
  
	
  	
  "must_not":	
  [	
  <queries>	
  ]	
  	
  #	
  NOT	
  
}	
  
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	
  
}	
  
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	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
no "must" queries
"bool":	
  	
  {	
  
	
  "should":	
  	
  	
  [	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }}	
  
	
  	
  ]	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
no "must" queries
at least one must match
"bool":	
  	
  {	
  
	
  "should":	
  	
  	
  [	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }}	
  
	
  	
  ]	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
no "must" queries
minimum_should_match = 1
"bool":	
  	
  {	
  
	
  "should":	
  	
  	
  [	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }}	
  
	
  	
  ]	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  
	
  	
  "must":	
  {	
  "term":	
  {	
  "title":	
  "quick"}},	
  	
  
	
  	
  "should":	
  	
  	
  [	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }}	
  
	
  	
  ]	
  
}	
  
with "must" queries
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  
	
  	
  "must":	
  {	
  "term":	
  {	
  "title":	
  "quick"}},	
  	
  
	
  	
  "should":	
  	
  	
  [	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }}	
  
	
  	
  ]	
  
}	
  
with "must" queries
all are optional!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  	
  {	
  
	
  	
  "must":	
  {	
  "term":	
  {	
  "title":	
  "quick"}},	
  	
  
	
  	
  "should":	
  	
  	
  [	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "rabbits"	
  }}	
  
	
  	
  ]	
  
}	
  
with "must" queries
minimum_should_match = 0
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bool	
  filter	
  ➔	
  T/F	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bool	
  filter	
  ➔	
  T/F	
  
!
bool	
  query	
  	
  ➔	
  _score
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
_score	
  of	
  bool	
  query	
  =	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
_score	
  of	
  bool	
  query	
  =	
  
	
  	
  	
  sum(	
  _score	
  of	
  each	
  query)	
  
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	
  
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	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
more matching should queries
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
more matching should queries
==
better relevance score
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"	
  }}	
  
	
  	
  ]	
  
}
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%"	
  
}
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	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
high level query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
high level query
understands mapping & analysis
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query
➔ analyze query string
➔ rewrite query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
one word query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  "match":	
  	
  {	
  "title":	
  "QUICK!"	
  }}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  "match":	
  	
  {	
  "title":	
  "QUICK!"	
  }}
title:quick
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  "match":	
  	
  {	
  "title":	
  "QUICK!"	
  }}
title:quick
{	
  "term":	
  	
  {	
  "title":	
  "quick"	
  }}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
multi word query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  "match":	
  	
  {	
  "title":	
  "QUICK	
  FOX!"	
  }}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  "match":	
  	
  {	
  "title":	
  "QUICK	
  FOX!"	
  }}
title:quick	
  OR	
  title:fox
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  "match":	
  	
  {	
  "title":	
  "QUICK	
  FOX!"	
  }}
title:quick	
  OR	
  title:fox
{	
  "bool":	
  {	
  
	
  	
  	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "fox"	
  	
  	
  }}	
  
	
  	
  	
  	
  ]	
  
}}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
all words must match
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":	
  "QUICK	
  FOX!"	
  
	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  	
  	
  "QUICK	
  FOX!",	
  
!
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  	
  	
  	
  "QUICK	
  FOX!",	
  
	
  	
  	
  	
  	
  	
  "operator":	
  "and"	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "bool":	
  {	
  
	
  	
  	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "fox"	
  	
  	
  }}	
  
	
  	
  	
  	
  ]	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "bool":	
  {	
  
	
  	
  	
  	
  "must":	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "fox"	
  	
  	
  }}	
  
	
  	
  	
  	
  ]	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
trim long tail
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  "QUICK	
  BROWN	
  FOX!",	
  
	
  	
  	
  	
  	
  	
  "minimum_should_match":	
  "75%"	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "bool":	
  {	
  
	
  	
  	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "quick"	
  }},	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "brown"	
  }},	
  
	
  	
  	
  	
  	
  	
  {	
  "term":	
  {	
  "title":	
  "fox"	
  	
  	
  }}	
  
	
  	
  	
  	
  ],	
  
	
  	
  	
  	
  "minimum_should_match":	
  2	
  
	
  	
  }	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
fuzzy queries
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
fuzzy queries
levenshtein edit distance
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron	
  	
  	
  ➔	
  	
  	
  	
  brown
insertion
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron	
  	
  	
  ➔	
  	
  	
  	
  brown
foxs	
  	
  	
  ➔	
  	
  	
  	
  fox
deletion
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron	
  	
  	
  ➔	
  	
  	
  	
  brown
foxs	
  	
  	
  ➔	
  	
  	
  	
  fox
kiuck	
  	
  	
  ➔	
  	
  	
  qiuck
substitution
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
bron	
  	
  	
  ➔	
  	
  	
  	
  brown
foxs	
  	
  	
  ➔	
  	
  	
  	
  fox
kiuck	
  	
  	
  ➔	
  	
  	
  qiuck	
  	
  ➔	
  	
  quick
transposition
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  "KIUCK	
  BRON	
  FOXS!",	
  
	
  	
  	
  	
  	
  	
  "fuzziness":	
  "AUTO"	
  
	
  	
  	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
phrase / proximity
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match_phrase":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":"QUICK	
  BROWN	
  FOX!"	
  
	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  	
  
	
  	
  "match_phrase":	
  	
  {	
  	
  
	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  "query":	
  "BROWN	
  QUICK	
  FOX!",	
  
	
  	
  	
  	
  	
  	
  "slop":	
  	
  "10"	
  
	
  	
  	
  	
  }	
  
	
  	
  }	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
combine queries
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  {	
  
	
  	
  "must":	
  {	
  <min_should_match>	
  },	
  
	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  	
  <fuzzy>	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  <proximity>	
  	
  	
  	
  }	
  
	
  	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  {	
  
	
  	
  "must":	
  {	
  <min_should_match>	
  },	
  
	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  	
  <fuzzy>	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  <proximity>	
  	
  	
  	
  }	
  
	
  	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
!
	
  	
  	
  	
  "match":	
  {	
  
	
  	
  	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  	
  "query":	
  "<words>",	
  
	
  	
  	
  	
  	
  	
  	
  	
  "minimum_should_match":	
  "75%"	
  
	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  {	
  
	
  	
  "must":	
  {	
  <min_should_match>	
  },	
  
	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  	
  <fuzzy>	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  <proximity>	
  	
  	
  	
  }	
  
	
  	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
!
	
  	
  	
  "match":	
  {	
  
	
  	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  "query":	
  "<words>",	
  
	
  	
  	
  	
  	
  	
  	
  "fuzziness":	
  "AUTO"	
  
	
  	
  	
  	
  	
  	
  }	
  
	
  	
  	
  	
  }	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  {	
  
	
  	
  "must":	
  {	
  <min_should_match>	
  },	
  
	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  	
  <fuzzy>	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  <proximity>	
  	
  	
  	
  }	
  
	
  	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
!
	
  	
  "match_phrase":	
  {	
  
	
  	
  	
  	
  	
  "title":	
  {	
  
	
  	
  	
  	
  	
  	
  	
  "query":	
  "<words>",	
  
	
  	
  	
  	
  	
  	
  	
  "slop":	
  "10"	
  
	
  	
  	
  	
  	
  }	
  
	
  	
  	
  }	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  {	
  
	
  	
  "must":	
  {	
  <min_should_match>	
  },	
  
	
  	
  "should":	
  [	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  	
  <fuzzy>	
  	
  	
  	
  	
  	
  	
  },	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  {	
  	
  	
  	
  	
  <proximity>	
  	
  	
  	
  }	
  
	
  	
  ]	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
multi-field queries
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
easy!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"bool":	
  {	
  
	
  	
  "should":	
  [	
  
	
  	
  	
  	
  {	
  "match":	
  {"first":	
  	
  "Reginald"	
  }},	
  
	
  	
  	
  	
  {	
  "match":	
  {"middle":	
  "Kenneth"	
  	
  }},	
  
	
  	
  	
  	
  {	
  "match":	
  {"last":	
  	
  	
  "Dwight"	
  	
  	
  }}	
  
	
  	
  	
  	
  ],	
  
	
  	
  	
  	
  "minimum_should_match":	
  "75%"	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
hard!
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"	
  	
  	
  
	
  	
  	
  	
  }}	
  
	
  	
  ]	
  
}
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"	
  
}
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
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
dis_max query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
all docs which match any query
dis_max query
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
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"	
  	
  	
  
	
  	
  	
  	
  }}	
  
	
  	
  ]	
  
}
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"	
  	
  	
  
	
  	
  	
  	
  }}	
  
	
  	
  ]	
  
}
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"	
  
}
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"	
  
}
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	
  
}
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
multi_match query
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
match query on multiple fields
multi_match query
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	
  
}
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	
  
}
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"	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
best_fields
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
find whole "concept" in one field
best_fields
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"quick brown fox" in title or content
best_fields
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"title":	
  {	
  
	
  	
  "type":	
  	
  	
  	
  	
  	
  	
  	
  	
  "string"	
  
}	
  
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"title":	
  {	
  
	
  	
  "type":	
  	
  	
  	
  	
  	
  	
  	
  	
  "string",	
  
	
  	
  "fields":	
  {	
  
!
!
!
!
!
!
!
}}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"title":	
  {	
  
	
  	
  "type":	
  	
  	
  	
  	
  	
  	
  	
  	
  "string",	
  
	
  	
  "fields":	
  {	
  
	
  	
  	
  	
  "stemmed":	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  	
  	
  	
  	
  "string",	
  
	
  	
  	
  	
  	
  	
  "analyzer":	
  "english"	
  
	
  	
  	
  	
  }	
  
!
!
!
}}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"title":	
  {	
  
	
  	
  "type":	
  	
  	
  	
  	
  	
  	
  	
  	
  "string",	
  
	
  	
  "fields":	
  {	
  
	
  	
  	
  	
  "stemmed":	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  	
  	
  	
  	
  "string",	
  
	
  	
  	
  	
  	
  	
  "analyzer":	
  "english"	
  
	
  	
  	
  	
  },	
  
	
  	
  	
  	
  "autocomplete":	
  {	
  
	
  	
  	
  	
  	
  	
  "type":	
  	
  	
  	
  	
  "string",	
  
	
  	
  	
  	
  	
  	
  "analyzer":	
  "edge_ngrams"	
  
}}}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
title:	
  
	
  	
  [	
  brown,	
  fox,	
  jumped	
  ]	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
title:	
  
	
  	
  [	
  brown,	
  fox,	
  jumped	
  ]	
  
!
title.stemmed:	
  
	
  	
  [	
  brown,	
  fox,	
  jump	
  ]	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
title:	
  
	
  	
  [	
  brown,	
  fox,	
  jumped	
  ]	
  
!
title.stemmed:	
  
	
  	
  [	
  brown,	
  fox,	
  jump	
  ]	
  
!
title.autocomplete	
  
	
  	
  [	
  b,	
  br,	
  bro,	
  brow,	
  brown,	
  	
  
	
  	
  	
  	
  f,	
  fo,	
  fox,	
  
	
  	
  	
  	
  j,	
  ju,	
  jum,	
  jump,	
  jumpe,	
  jumped	
  
	
  	
  ]	
  
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"	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
match same text
analyzed in different ways
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
more matching fields = better
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
most_fields
bool
more matching fields = better
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
{	
  
	
  	
  "first":	
  	
  "Reginald",	
  
	
  	
  "middle":	
  "Kenneth"	
  
	
  	
  "last":	
  	
  	
  "Dwight"	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"multi_match":	
  {	
  
	
  	
  "query":	
  "Reginald	
  Kenneth	
  Dwight",	
  
	
  	
  "fields":	
  	
  	
  [	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "first",	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "middle",	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  "last"	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ]	
  
!
}
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":	
  	
  	
  	
  	
  	
  	
  "????"	
  
}
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"	
  
}
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"	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
field centric
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	
  
)
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	
  
)
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
operator: and
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	
  
)
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	
  
)
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
term frequencies
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
term frequencies
first:dwight	
  	
  ➔	
  common
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
problem
term frequencies
first:dwight	
  	
  ➔	
  common
last:	
  dwight	
  	
  ➔	
  uncommon
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
solution
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
index time solution
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
index time solution
single "fullname" field
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"first":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string"	
  
},	
  
"middle":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string"	
  
},	
  
"last":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string"	
  
}	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"first":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string"	
  
},	
  
"middle":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string"	
  
},	
  
"last":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string"	
  
},	
  
"full":	
  {	
  
	
  	
  	
  	
  "type":	
  "string"	
  	
  
}	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"first":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string",	
  "copy_to":	
  "full"	
  	
  
},	
  
"middle":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string",	
  "copy_to":	
  "full"	
  	
  
},	
  
"last":	
  {	
  	
  
	
  	
  	
  	
  "type":	
  "string",	
  "copy_to":	
  "full"	
  	
  
},	
  
"full":	
  {	
  
	
  	
  	
  	
  "type":	
  "string"	
  	
  
}	
  
!
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
"match":	
  {	
  
	
  	
  "full":	
  "Reginald	
  Kenneth	
  Dwight",	
  
	
  	
  "minimum_should_match":	
  "75%"	
  
}
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query time solution
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
query time solution
term-centric query
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	
  
)
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	
  
)
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
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
cross_fields
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
cross_fields
query multiple fields
as if they were one
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"	
  
}
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",	
  
	
  	
  "minimum_should_match":	
  "75%"	
  
}
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
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
understand the
building blocks
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
the rest is details
Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited.
thank you
@clintongormley
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	
  	
  

More Related Content

What's hot (20)

PPTX
Spring beans
Roman Dovgan
 
PDF
Microservices avec Spring Cloud
Florian Beaufumé
 
PDF
Zookeeper 소개
beom kyun choi
 
PDF
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
 
PPTX
Hang fire
Reshmy P.P
 
PDF
Interceptors: Into the Core of Pedestal
Kent Ohashi
 
PDF
MongoDB et Elasticsearch, meilleurs ennemis ?
Sébastien Prunier
 
PPTX
Introduction à spring boot
Antoine Rey
 
PPTX
Asp.Net Core MVC with Entity Framework
Shravan A
 
PPTX
Introduction to Node.js
AMD Developer Central
 
PPTX
Servlets et JSP
Heithem Abbes
 
PDF
Graph QL par Andy Gigon
Idean France
 
PPTX
Apache tomcat
Shashwat Shriparv
 
PDF
Servlet vs Reactive Stacks in 5 Use Cases
VMware Tanzu
 
PPTX
Solr Search Engine: Optimize Is (Not) Bad for You
Sematext Group, Inc.
 
PDF
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Addi Ait-Mlouk
 
PDF
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
 
PDF
OSSを利用したプロジェクト管理
Tadashi Miyazato
 
PDF
Real Life Clean Architecture
Mattia Battiston
 
Spring beans
Roman Dovgan
 
Microservices avec Spring Cloud
Florian Beaufumé
 
Zookeeper 소개
beom kyun choi
 
Support de cours Spring M.youssfi
ENSET, Université Hassan II Casablanca
 
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
NTT DATA Technology & Innovation
 
Hang fire
Reshmy P.P
 
Interceptors: Into the Core of Pedestal
Kent Ohashi
 
MongoDB et Elasticsearch, meilleurs ennemis ?
Sébastien Prunier
 
Introduction à spring boot
Antoine Rey
 
Asp.Net Core MVC with Entity Framework
Shravan A
 
Introduction to Node.js
AMD Developer Central
 
Servlets et JSP
Heithem Abbes
 
Graph QL par Andy Gigon
Idean France
 
Apache tomcat
Shashwat Shriparv
 
Servlet vs Reactive Stacks in 5 Use Cases
VMware Tanzu
 
Solr Search Engine: Optimize Is (Not) Bad for You
Sematext Group, Inc.
 
Paramétrage et développement spécifique des modules odoo(OpenERP) Partie 1
Addi Ait-Mlouk
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
 
OSSを利用したプロジェクト管理
Tadashi Miyazato
 
Real Life Clean Architecture
Mattia Battiston
 

Viewers also liked (6)

PPTX
Introduction to Elasticsearch Searching
Bo Andersen
 
PPTX
Introduction to Elasticsearch Mapping
Bo Andersen
 
PPTX
Elasticsearch Field Data Types
Bo Andersen
 
PPTX
Introduction to Elasticsearch
Bo Andersen
 
PDF
Hopper Elasticsearch Hackathon
imotov
 
PDF
Down and dirty with Elasticsearch
clintongormley
 
Introduction to Elasticsearch Searching
Bo Andersen
 
Introduction to Elasticsearch Mapping
Bo Andersen
 
Elasticsearch Field Data Types
Bo Andersen
 
Introduction to Elasticsearch
Bo Andersen
 
Hopper Elasticsearch Hackathon
imotov
 
Down and dirty with Elasticsearch
clintongormley
 
Ad

Similar to Elasticsearch Query DSL - Not just for wizards... (10)

PDF
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
NoSQLmatters
 
PDF
Scaling real-time search and analytics with Elasticsearch
clintongormley
 
PDF
Making sense of your data to give new insight - Elasticsearch at Findability ...
Findwise
 
PDF
Building Hypermedia APIs in JavaScript
3scale
 
PPTX
Introducing ElasticSearch - Ashish
Entrepreneur / Startup
 
PDF
Scalabay - API Design Antipatterns
Manish Pandit
 
PDF
How to Build Interactive Training that Scales - Magnolia CMS Conference 2013
Mark Halvorson
 
PDF
Webcast: Pragmatic REST: The Next Generation
Apigee | Google Cloud
 
PDF
Keep it Secret, Keep it Safe - Docker Secrets and DI
Dana Luther
 
PDF
DefCamp 2013 - Http header analysis
DefCamp
 
Clinton Gormley – Elasticsearch Query DSL – Not just for wizards…- NoSQL matt...
NoSQLmatters
 
Scaling real-time search and analytics with Elasticsearch
clintongormley
 
Making sense of your data to give new insight - Elasticsearch at Findability ...
Findwise
 
Building Hypermedia APIs in JavaScript
3scale
 
Introducing ElasticSearch - Ashish
Entrepreneur / Startup
 
Scalabay - API Design Antipatterns
Manish Pandit
 
How to Build Interactive Training that Scales - Magnolia CMS Conference 2013
Mark Halvorson
 
Webcast: Pragmatic REST: The Next Generation
Apigee | Google Cloud
 
Keep it Secret, Keep it Safe - Docker Secrets and DI
Dana Luther
 
DefCamp 2013 - Http header analysis
DefCamp
 
Ad

Recently uploaded (20)

PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PPTX
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PPTX
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPT
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PPTX
Digital Circuits, important subject in CS
contactparinay1
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Designing_the_Future_AI_Driven_Product_Experiences_Across_Devices.pptx
presentifyai
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
The Rise of AI and IoT in Mobile App Tech.pdf
IMG Global Infotech
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Agentforce World Tour Toronto '25 - Supercharge MuleSoft Development with Mod...
Alexandra N. Martinez
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Future-Proof or Fall Behind? 10 Tech Trends You Can’t Afford to Ignore in 2025
DIGITALCONFEX
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Ericsson LTE presentation SEMINAR 2010.ppt
npat3
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Digital Circuits, important subject in CS
contactparinay1
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 

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"  }},   ! ! ! ! ! }  
  • 90. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {        "must":  {  "term":  {  "title":  "rabbits"  }},      "should":  [            {  "term":  {  "title":      "quick"  }},          {  "term":  {  "content":  "quick"  }}      ],   ! }  
  • 91. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {        "must":  {  "term":  {  "title":  "rabbits"  }},      "should":  [            {  "term":  {  "title":      "quick"  }},          {  "term":  {  "content":  "quick"  }}      ],      "must_not":  {  "term":  {  "content":  "fox"  }}   }  
  • 92. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {        "must":  [          {  "bool":    {                "should":  [                    {  "term":  {  "title":      "rabbits"  }},                  {  "term":  {  "content":  "rabbits"  }}          ]}},          {  "bool":    {                "should":  [                    {  "term":  {  "title":      "quick"  }},                  {  "term":  {  "content":  "quick"  }}          ]}}      ],      "must_not":  {  "term":  {  "content":  "fox"  }}   }
  • 93. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {        "must":  [          {  "bool":    {                "should":  [                    {  "term":  {  "title":      "rabbits"  }},                  {  "term":  {  "content":  "rabbits"  }}          ]}},          {  "bool":    {                "should":  [                    {  "term":  {  "title":      "quick"  }},                  {  "term":  {  "content":  "quick"  }}          ]}}      ],      "must_not":  {  "term":  {  "content":  "fox"  }}   } not cached
  • 94. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {        "must":  [          {  "bool":    {                "should":  [                    {  "term":  {  "title":      "rabbits"  }},                  {  "term":  {  "content":  "rabbits"  }}          ]}},          {  "bool":    {                "should":  [                    {  "term":  {  "title":      "quick"  }},                  {  "term":  {  "content":  "quick"  }}          ]}}      ],      "must_not":  {  "term":  {  "content":  "fox"  }}   } cached
  • 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   }  
  • 121. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. no "must" queries "bool":    {    "should":      [          {  "term":  {  "title":  "quick"  }},          {  "term":  {  "title":  "brown"  }},          {  "term":  {  "title":  "rabbits"  }}      ]   }
  • 122. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. no "must" queries at least one must match "bool":    {    "should":      [          {  "term":  {  "title":  "quick"  }},          {  "term":  {  "title":  "brown"  }},          {  "term":  {  "title":  "rabbits"  }}      ]   }
  • 123. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. no "must" queries minimum_should_match = 1 "bool":    {    "should":      [          {  "term":  {  "title":  "quick"  }},          {  "term":  {  "title":  "brown"  }},          {  "term":  {  "title":  "rabbits"  }}      ]   }
  • 124. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {      "must":  {  "term":  {  "title":  "quick"}},        "should":      [          {  "term":  {  "title":  "brown"  }},          {  "term":  {  "title":  "rabbits"  }}      ]   }   with "must" queries
  • 125. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {      "must":  {  "term":  {  "title":  "quick"}},        "should":      [          {  "term":  {  "title":  "brown"  }},          {  "term":  {  "title":  "rabbits"  }}      ]   }   with "must" queries all are optional!
  • 126. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":    {      "must":  {  "term":  {  "title":  "quick"}},        "should":      [          {  "term":  {  "title":  "brown"  }},          {  "term":  {  "title":  "rabbits"  }}      ]   }   with "must" queries minimum_should_match = 0
  • 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
  • 149. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {  "match":    {  "title":  "QUICK  FOX!"  }} title:quick  OR  title:fox {  "bool":  {          "should":  [              {  "term":  {  "title":  "quick"  }},              {  "term":  {  "title":  "fox"      }}          ]   }}  
  • 150. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. all words must match
  • 151. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "match":    {            "title":  "QUICK  FOX!"      }   }
  • 152. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "match":    {            "title":  {              "query":        "QUICK  FOX!",   !        }      }   }
  • 153. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "match":    {            "title":  {              "query":        "QUICK  FOX!",              "operator":  "and"          }      }   }
  • 154. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "bool":  {          "should":  [              {  "term":  {  "title":  "quick"  }},              {  "term":  {  "title":  "fox"      }}          ]      }   }  
  • 155. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "bool":  {          "must":  [              {  "term":  {  "title":  "quick"  }},              {  "term":  {  "title":  "fox"      }}          ]      }   }  
  • 156. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. trim long tail
  • 157. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "match":    {            "title":  {              "query":  "QUICK  BROWN  FOX!",              "minimum_should_match":  "75%"          }      }   }
  • 158. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. {        "bool":  {          "should":  [              {  "term":  {  "title":  "quick"  }},              {  "term":  {  "title":  "brown"  }},              {  "term":  {  "title":  "fox"      }}          ],          "minimum_should_match":  2      }   }  
  • 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!
  • 181. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "bool":  {      "should":  [          {  "match":  {"first":    "Reginald"  }},          {  "match":  {"middle":  "Kenneth"    }},          {  "match":  {"last":      "Dwight"      }}          ],          "minimum_should_match":  "75%"   }  
  • 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":  {   ! ! ! ! ! ! ! }}
  • 208. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "title":  {      "type":                  "string",      "fields":  {          "stemmed":  {              "type":          "string",              "analyzer":  "english"          }   ! ! ! }}
  • 209. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "title":  {      "type":                  "string",      "fields":  {          "stemmed":  {              "type":          "string",              "analyzer":  "english"          },          "autocomplete":  {              "type":          "string",              "analyzer":  "edge_ngrams"   }}}
  • 210. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. title:      [  brown,  fox,  jumped  ]   !
  • 211. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. title:      [  brown,  fox,  jumped  ]   ! title.stemmed:      [  brown,  fox,  jump  ]   !
  • 212. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. title:      [  brown,  fox,  jumped  ]   ! title.stemmed:      [  brown,  fox,  jump  ]   ! title.autocomplete      [  b,  br,  bro,  brow,  brown,            f,  fo,  fox,          j,  ju,  jum,  jump,  jumpe,  jumped      ]  
  • 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"   }   !
  • 239. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "first":  {            "type":  "string"   },   "middle":  {            "type":  "string"   },   "last":  {            "type":  "string"   },   "full":  {          "type":  "string"     }   !
  • 240. Copyright Elasticsearch 2014. Copying, publishing and/or distributing without written permission is strictly prohibited. "first":  {            "type":  "string",  "copy_to":  "full"     },   "middle":  {            "type":  "string",  "copy_to":  "full"     },   "last":  {            "type":  "string",  "copy_to":  "full"     },   "full":  {          "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"   }
  • 251. 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",      "minimum_should_match":  "75%"   }
  • 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