您的位置:首页 > 其它

ElasticSearch.net In查询

2017-04-21 16:47 447 查看
public PUB_StockSearchResult SearchModelArr(PUB_StockSearch param)

        {

            PUB_StockSearchResult result = new PUB_StockSearchResult();

            result.ResultList = new List<ES_PUB_StockResult>();

            if (param.ModelArr == null || param.ModelArr.Length == 0)

            {

                return result;

            }

            QueryContainer query = new TermsQuery() { Field = ES_PUB_StockField.Model, Terms = param.ModelArr };

            if (param.InvQty > 0)

            {

                QueryContainer query_invqty = new NumericRangeQuery() { Field = ES_PUB_StockField.InvQty, GreaterThanOrEqualTo = param.InvQty };

                query = query && query_invqty;

            }

            List<ISort> sortlist = new List<ISort>();

            if (param.SortList != null && param.SortList.Count > 0)

            {

                foreach (var sortitem in param.SortList)

                {

                    ISort sort = new SortField { Field = sortitem.Key };

                    switch (sortitem.Value)

                    {

                        case "asc":

                            //sort = new SortField { Field = sortitem.Key, Order = SortOrder.Ascending };

                            sort.Order = SortOrder.Ascending;

                            break;

                        case "desc":

                            //sort = new SortField { Field = sortitem.Key, Order = SortOrder.Descending };

                            sort.Order = SortOrder.Descending;

                            break;

                    }

                    sortlist.Add(sort);

                }

            }

            var searchRequest = new SearchRequest<ES_PUB_Stock>();

            searchRequest.Query = query;

            searchRequest.Sort = sortlist;

            searchRequest.From = 0;

            searchRequest.Size = 1000;

            var response = client.Search<ES_PUB_Stock>(searchRequest);

            result.Total = response.Total;

            foreach (var item in response.Hits.Select(p => p.Source))

            {

                MEM_ApplyInfo applyparam = new MEM_ApplyInfo();

                applyparam.MEMID = item.upByMemberID;

                ES_PUB_StockResult resultItem = FacetsHelper.FillPicSearchTempEntity(applyparam);

                if (resultItem == null)

                {

                    continue;

                }

                resultItem = GetOneStockResult(resultItem, item);

                result.ResultList.Add(resultItem);

            }

            return result;

        }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息