ElasticSearch.net结构化查询
2017-04-21 16:39
525 查看
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;
}
以下直接列出查询方法。
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;
}
相关文章推荐
- ElasticSearch.net分组查询
- elasticsearch.net一个查询问题
- ElasticSearch.net In查询
- Elasticsearch .Net Client NEST 多条件查询示例
- Elasticsearch .net 客户端条件拼接查询
- Elasticsearch java API (23)查询 DSL Geo查询
- ElasticSearch—通过Elasticsearch RestFul搜索查询
- ElasticSearch基本查询
- Elasticsearch——利用Parent-Child关系解决大数据场景下的实时查询
- Elasticsearch .net client NEST使用说明
- Elasticsearch之CURL命令的DSL查询
- Elasticsearch.Net使用(一)【入门篇】
- Kibana+Logstash+Elasticsearch 日志查询系统
- Elasticsearch之结构化索引。
- ElasticSearch+mongodb+asp.net webapi开放平台系列
- Elasticsearch+hbase 实现hbase中数据的快速查询(三)
- spring-data-elasticsearch + java 查询方法的封装
- .net Elasticsearch 学习入门笔记
- Elasticsearch.net client NEST 5.x 使用总结
- elasticsearch出现java.net.Inet6AddressImpl.lookupAllHostAddr(Ljava/lang/String;)[Ljava/net/InetAddress