Vitorm.ElasticSearch.QueryBuilder
Tool to convert FilterRule or ExpressionNode to ElasticSearch Query Request
source address: https://github.com/Vit-Orm/Vitorm.ElasticSearch.QueryBuilder


Installation
Before using , install the necessary package:
dotnet add package Vitorm.ElasticSearch.QueryBuilder
dotnet add package Vit.Core
Demo
using Vit.Core.Module.Serialization;
using Vit.Linq.ComponentModel;
using Vitorm.ElasticSearch;
namespace App
{
public class Program
{
static void Main(string[] args)
{
var strPagedQuery = "{ 'filter':{'field':'children.id', 'operator': '=', 'value': 1 }, 'orders':[{'field':'id','asc':false}], 'page':{'pageSize':2, 'pageIndex':1} }".Replace("'", "\"");
var pagedQuery = Json.Deserialize<PagedQuery>(strPagedQuery);
var queryRequest = new FilterRuleBuilder().ConvertToQuery(pagedQuery.filter);
var strQuery = Json.Serialize(queryRequest);
}
[System.ComponentModel.DataAnnotations.Schema.Table("User")]
public class User
{
[System.ComponentModel.DataAnnotations.Key]
public int id { get; set; }
public string name { get; set; }
public DateTime? birth { get; set; }
public int? fatherId { get; set; }
public List<User> children { get; set; }
}
}
}