/// <summary> /// 搜索 /// </summary> /// <typeparam name="TResult">结果类型</typeparam> /// <param name="context">服务</param> /// <param name="query">查询参数</param> public static EsSearch <TResult> Search <TResult>(this IElasticsearchContext context, IQueryParameter query) where TResult : class { context.CheckNull(nameof(context)); query.CheckNull(nameof(query)); return(new EsSearch <TResult>(context, query)); }
public Form1(IElasticsearchContext context) { _context = context; _client = _context.GetClient(); InitializeComponent(); DoubleBufferedDataGirdView(dgvTable, true); dgvTable.ReadOnly = true; dgvTable.VirtualMode = true; //dgvTable.RowCount = 10; }
public EsSearch(IElasticsearchContext context, IQueryParameter query) { context.CheckNull(nameof(context)); query.CheckNull(nameof(query)); _context = context; _queryParam = query; _sorts = new List <ISort>(); _includeFields = new List <Field>(); _excludeFields = new List <Field>(); _query = new EsQuery <TResult>(); }
/// <summary> /// 查询。单一条件查询,一般是精确查询 /// </summary> /// <typeparam name="TDocument">文档类型</typeparam> /// <param name="context">ES上下恩</param> /// <param name="field">字段名</param> /// <param name="value">值</param> /// <param name="index">索引名称。注意:必须小写</param> /// <param name="cancellationToken">取消令牌</param> public static async Task <IEnumerable <TDocument> > SearchAsync <TDocument>(this IElasticsearchContext context, string field, object value, string index = null, CancellationToken cancellationToken = default) where TDocument : class { if (field.IsEmpty()) { throw new ArgumentNullException(nameof(field)); } index = context.GetIndexName(Helper.SafeIndexName <TDocument>(index)); var descriptor = new SearchDescriptor <TDocument>(); descriptor.Index(index) .PostFilter(f => f.Term(x => x.Field(field).Value(value))); Func <SearchDescriptor <TDocument>, ISearchRequest> selector = x => descriptor; var response = await context.SearchAsync(selector, cancellationToken); return(response.Documents); }
/// <summary> /// 初始化一个<see cref="EsRepository{TEntity}"/>类型的实例 /// </summary> /// <param name="context">ES上下文</param> public EsRepository(IElasticsearchContext context) { Context = context ?? throw new ArgumentNullException(nameof(context)); _client = Context.GetClient(); IndexName = Helper.SafeIndexName <TEntity>(IndexName); }
public SampleContext(IFreeSql orm, IElasticsearchContext context) { Orm = orm; ESContext = context; }