ES_PUB_Stock这个类型定义先看之前写的文章,
以下直接列出查询方法。
public PUB_StockSearchResult Search(PUB_StockSearch param)
{PUB_StockSearchResult result = new PUB_StockSearchResult();
result.ResultList = new List<ES_PUB_StockResult>();
QueryContainer query = null;
if (!string.IsNullOrEmpty(param.Model))
{
QueryContainer query_model = new WildcardQuery() { Field = ES_PUB_StockField.Model, Value = param.Model.Trim().ToUpper() + "*" };
query = query && query_model;
}
if (!string.IsNullOrEmpty(param.CategoryNo))
{
QueryContainer query_categoryNo = new WildcardQuery() { Field = ES_PUB_StockField.CategoryNo, Value = param.CategoryNo.Trim() + "*" };
query = query && query_categoryNo;
}
if (param.UpbyMemberID > 0)
{
QueryContainer query_UpbyMemeberID = new WildcardQuery() { Field = ES_PUB_StockField.UpbyMemberID, Value = param.UpbyMemberID };
query = query && query_UpbyMemeberID;
}
if (param.PageIndex < 1)
{
param.PageIndex = 1;
}
int start = (param.PageIndex - 1) * param.PageSize.GetValueOrDefault();
if (query == null || start + param.PageSize > 10000)
{
return result;
}
List<ISort> sortlist = new List<ISort>()
{
new SortField{Field=ES_PUB_StockField.ModelLength,Order=SortOrder.Ascending},
new SortField{Field=ES_PUB_StockField.UpdateTime,Order=SortOrder.Descending}
};
var searchRequest = new SearchRequest<ES_PUB_Stock>();
searchRequest.Query = query;
searchRequest.Sort = sortlist;
searchRequest.From = start;
searchRequest.Size = param.PageSize;
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;
}