c# - 'And' 'Or' Query in ElasticSearch -



c# - 'And' 'Or' Query in ElasticSearch -

public class user { public string email { get; set; } public int age { get; set; } public bool active { get; set; } } client.index(new user { email ="test@test.te" });

query in linq c# illustration :

rep.where(user=>user.email=="test@test.te" && (user.age>18 || user.active== true));

how create query elasticsearch (i mean same query in elasticsearch)?

you can utilize combination of :

range filter age field (reference) term filter email , active fields (reference) a bool filter should clauses (equivalent or) combine age , active filters (reference) another bool filter combine previous 1 email filter in must clause (equivalent and) a filtered query able utilize filters defined above.

it may useful know differences between query , filters.

you should end :

{ "query": { "filtered": { "filter": { "bool": { "must": [ { "term": { "email": "test@test.te" } }, { "bool": { "should": [ { "range": { "age": { "gt": 18 } } }, { "term": { "active": "true" } } ] } } ] } } } } }

note:

for query work, email field must not_analyzed term filter looks exact same value.

c# .net linq elasticsearch

Comments

Popular posts from this blog

formatting - SAS SQL Datepart function returning odd values -

c++ - Apple Mach-O Linker Error(Duplicate Symbols For Architecture armv7) -

php - Yii 2: Unable to find a class into the extension 'yii2-admin' -