示例#1
0
 /// <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;
 }
示例#3
0
 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>();
 }
示例#4
0
        /// <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);
        }
示例#5
0
 /// <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;
 }