- Elasticsearch Blueprints
- Vineeth Mohan
- 302字
- 2021-07-16 13:39:33
Searching with multiple conditions
Often, we find ourselves in a position where we need to search with more than one criterion, where each of these criteria could be expressed as an inpidual query. In this section, let's see how we can make such a combination of search.
One simple way to express multiple search criteria is using a bool
query. The bool
query lets you use a combination of other queries, where each of the conditions can be put using a Boolean clause. There are three Boolean clauses:
must
should
must_not
The must
clause suggests that the constituent query must appear in the matching documents. If there is no must
clause in the query, a combination of should
clauses can be given. Also, you may set the minimum number of should
clauses that should be matched. As the name indicates, must_not
means that this clause should not match the document.
Let's see how we can use the bool
query in Elasticsearch:
{ "bool" : { "must" : [{ "term" : { "productType" : "Laptop " } }], "must_not" : { "range" : { "dateOfManufactoring" : { "from" : 1990/01/01, "to" : 2014/01/01 } } }, "should" : [ { "term" : { "color" : "yellow" } }, { "term" : { "description" : "lenovo" } } ], "minimum_should_match" : 1, "boost" : 1.0 } }
Here, we used a bool
query to select all the laptops whose date of manufacturing is not between 1999 to 2014. Then, we boosted the laptops that were of the color yellow or were from lenovo.
Note
If there is at least one must
query, then none of the should
queries need to match a document to qualify that document as a result. In this case, the should
query match will increase the relevance of that document.
- Puppet 4 Essentials(Second Edition)
- 數據庫程序員面試筆試真題與解析
- Python自動化運維快速入門(第2版)
- Getting Started with CreateJS
- Android 7編程入門經典:使用Android Studio 2(第4版)
- Building Mapping Applications with QGIS
- Python數據可視化之Matplotlib與Pyecharts實戰
- 精通Python自然語言處理
- Visual Basic程序設計教程
- Practical Game Design with Unity and Playmaker
- Java Web應用開發項目教程
- Java EE 8 and Angular
- Learning C++ by Creating Games with UE4
- Sitecore Cookbook for Developers
- 樹莓派開發從零開始學:超好玩的智能小硬件制作書