Skip to content

Latest commit

 

History

History
54 lines (49 loc) · 1.75 KB

File metadata and controls

54 lines (49 loc) · 1.75 KB

Closer Is Better

Whereas a phrase query simply excludes documents that don’t contain the exact query phrase, a proximity query—a phrase query where slop is greater than 0—incorporates the proximity of the query terms into the final relevance _score. By setting a high slop value like 50 or 100, you can exclude documents in which the words are really too far apart, but give a higher score to documents in which the words are closer together.

The following proximity query for quick dog matches both documents that contain the words quick and dog, but gives a higher score to the document in which the words are nearer to each other:

POST /my_index/my_type/_search
{
   "query": {
      "match_phrase": {
         "title": {
            "query": "quick dog",
            "slop":  50 (1)
         }
      }
   }
}
  1. Note the high slop value.

{
  "hits": [
     {
        "_id":      "3",
        "_score":   0.75, (1)
        "_source": {
           "title": "The quick brown fox jumps over the quick dog"
        }
     },
     {
        "_id":      "2",
        "_score":   0.28347334, (2)
        "_source": {
           "title": "The quick brown fox jumps over the lazy dog"
        }
     }
  ]
}
  1. Higher score because quick and dog are close together

  2. Lower score because quick and dog are further apart