Elasticsearch in filter context and query context - How to retrieve documents using filter

In previous posts Boolean compound queriesFull Text QueryQuery term and Source filtering,  we performed search operation in query context and retrieved documents using "query" keyword. Elasticsearch also provides search capability in "filter" context.

Filter context search operation

When query is run in filter context there is no relevance of document score. Each document in response has score of 1.0 and filter context queries responds with Yes(given document included) or No (given document excluded) from response.

Filter with boolean compound queries: Below query filter documents based on age and only allow document in response with age range <30 to 35>.
➜  Desktop curl -XGET 'localhost:9200/customers/_search?pretty' -d'
{
  "query": {
    "bool": {
      "must": { "match_all": {} },
      "filter": {
        "range": {
          "age": {
            "gte": 30,
            "lte": 35
          }
        }
      }
    }
  },
  "size": 2,
  "_source" :["nam*", "age"]
}
' -H 'Content-Type: application/json'
{
  "took" : 3,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 97,
    "max_score" : 1.0,
    "hits" : [
      {
        "_index" : "customers",
        "_type" : "vendors",
        "_id" : "7n_g6mABB3_D7Pc85hFw",
        "_score" : 1.0,
        "_source" : {
          "name" : "Green Boyer",
          "age" : 32
        }
      },
      {
        "_index" : "customers",
        "_type" : "vendors",
        "_id" : "G3_g6mABB3_D7Pc85hJw",
        "_score" : 1.0,
        "_source" : {
          "name" : "Randall Sutton",
          "age" : 31
        }
      }
    ]
  }
}

Using filters along with search terms  : 
Below query uses filter within query context and filters documents with gender= female and age greater than 45. Response contains all records with gender female and age > 45.

➜  Desktop curl -XGET 'localhost:9200/customers/_search?pretty' -d'
{
  "query": {
    "bool": {
      "must":
        { "match": {
             "state":   "mississippi"
        }
      },
      "filter": [
        { "term":  { "gender": "female" }},
        { "range": { "age": { "gte": "45" }}}
      ]
    }
  },
  "size": 2,
  "_source" :["nam*", "age", "gend*"]
}
' -H 'Content-Type: application/json'
{
  "took" : 2,
  "timed_out" : false,
  "_shards" : {
    "total" : 5,
    "successful" : 5,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : 6,
    "max_score" : 4.326261,
    "hits" : [
      {
        "_index" : "customers",
        "_type" : "vendors",
        "_id" : "P3_g6mABB3_D7Pc85hJw",
        "_score" : 4.326261,
        "_source" : {
          "gender" : "female",
          "name" : "Regina Frederick",
          "age" : 49
        }
      },
      {
        "_index" : "customers",
        "_type" : "vendors",
        "_id" : "J3_g6mABB3_D7Pc85hNx",
        "_score" : 4.326261,
        "_source" : {
          "gender" : "female",
          "name" : "Alfreda Kent",
          "age" : 75
        }
      }
    ]
  }
}
 =======*****======

3 Comments


  1. Okuma alışkanlığını geliştirmek isteyenler için farklı türlerde sürükleyici kitaplar önerilerinde bulunmak faydalı olabilir. Bu kitaplar, dikkati dağıtmadan sizi başka dünyalara götürerek zamanın nasıl geçtiğini anlamanızı sağlar. Ayrıca, yeni bilgiler öğrenirken eğlenmenizi de sağlarlar. Herkesin ilgi alanına uygun bir seçenek bulması mümkündür. Bu nedenle, okuma listelerinize mutlaka göz atmalısınız.

    ReplyDelete

  2. Der Wechsel vom IT-Admin zur IT-Sicherheit ist ein Schritt, der viele Möglichkeiten eröffnet. Wer früher vor allem Server administriert hat, kann nun in einem dynamischen und herausfordernden Umfeld arbeiten. Fachkräfte sind gefragt wie nie zuvor, denn im Jahr 2025 wird laut Schätzungen der Bedarf an Cybersecurity-Experten um bis zu 30 Prozent steigen. Die Weiterbildung in Cybersecurity bietet die Chance, sich mit Themen wie Penetrationstests oder Incident Response auseinanderzusetzen und so das eigene Profil zu schärfen. Besonders wertvoll ist eine Zertifizierung nach ISO 27001, die den Umgang mit Informationssicherheit regelt und Arbeitgebern zeigt, dass man fundiertes Wissen besitzt. Für mehr Informationen über Weiterbildungsmöglichkeiten besuchen Sie https://csvisor.de/.

    ReplyDelete
Previous Post Next Post