(转)NEST.net Client For Elasticsearch简单应用
查询入口
{
IndustryPost = industryPost,
Region = region,
MinSalary = minSalary,
};
return FailActionRequest(gl.webapi_error);
if (gl.total <= 0)
{
return OkActionRequest(gl);
}
return OkListActionRequest(gl);
QueryPositionsAsync 部分代码
//查看搜索语句
//var temp= Encoding.UTF8.GetString(resultData.RequestInformation.Request).Trim();
if (!resultData.Hits.Any())
{
return new GListResult<eJobPositionSimple>(new eJobPositionSimple[0]);
}
var result = resultData.Documents;
var g1 = result.Select(position => new eJobPositionSimple
{
Pstn_Id = position._id,
...
Phone = position.Phone,
Name = position.BrandName,
}).ToList();
return new GListResult<eJobPositionSimple>(g1, (int) resultData.Total);
QueryAsync部分代码
/// 生成搜索客户端
/// </summary>
/// <returns></returns>
private static ElasticClient GetSearchClient()
{
var connectString = ConfigurationManager.ConnectionStrings["ElasticSearch"].ConnectionString;
var nodesStr = connectString.Split('|');
var nodes = nodesStr.Select(s => new Uri(s)).ToList();
var connectionPool = new SniffingConnectionPool(nodes);
var settings = new ConnectionSettings(connectionPool).SetDefaultIndex("position");
settings.SetDefaultPropertyNameInferrer(p => p.ToString());
var client = new ElasticClient(settings);
return client;
}
{
var client = GetSearchClient();
var resultData = await client.SearchAsync<QPosition>(s =>
s.Index("position").Type("tbJobPosition").
Query(
q => QueryContainerPosition(condition, searchText, q)).
SortDescending(f => f.UpdateTime).Skip(skip).Take(top));
return resultData;
}
/// 生成职位查询表达式
/// </summary>
/// <param name="condition">职位条件</param>
/// <param name="searchText">查询的关键字</param>
/// <param name="q">用于返回的查询表达式</param>
/// <returns>返回用于搜索的表达式</returns>
private static QueryContainer QueryContainerPosition(eJobQueryPosition condition, string searchText, QueryDescriptor<QPosition> q)
{
var query = new QueryContainer();
//未过有效期
query &= q.Range(rr => rr.OnField(ff => ff.ExpireTime).GreaterOrEquals(DateTime.UtcNow.Date));
if (!string.IsNullOrWhiteSpace(searchText))
{
query &= QueryText(searchText, q, query);
}
return query;
query1 = q.Term(s => s.OnField(ff => ff.BrandName).Value("szbrandname1"));
var query2 = new QueryContainer();
query2 = q.Term(s => s.OnField(ff => ff.BrandName).Value("szbrandname2"));
var query3 = new QueryContainer();
query2 = q.Term(s => s.OnField(ff => ff.BrandName).Value("szbrandname3"));
query = query1 || query2 || query3;
}
/// 搜索文本表达式,一定要放在所有表达式的最后
/// </summary>
/// <param name="searchText">搜索文本</param>
/// <param name="q">搜索表达式</param>
/// <param name="query">要返回的搜索表达式类</param>
/// <returns></returns>
private static QueryContainer QueryText(string searchText, QueryDescriptor<QPosition> q, QueryContainer query)
{
if (!string.IsNullOrWhiteSpace(searchText))
{
query = q.MatchPhrase(p => p.OnField(o => o.Descript).Query(searchText));
}
return query;
}
using System.Configuration;
using System.Linq;
using System.Threading.Tasks;
using **.Entity;
using Elasticsearch.Net.ConnectionPool;
using Nest;
参考资料网址
(转)NEST.net Client For Elasticsearch简单应用的更多相关文章
- NEST.net Client For Elasticsearch简单应用
NEST.net Client For Elasticsearch简单应用 由于最近的一个项目中的搜索部分要用到 Elasticsearch 来实现搜索功能,苦于英文差及该方面的系统性资料不好找,在实 ...
- NEST.net Client
NEST.net Client For Elasticsearch简单应用 由于最近的一个项目中的搜索部分要用到 Elasticsearch 来实现搜索功能,苦于英文差及该方面的系统性资料不好找,在实 ...
- Elastcisearch.Nest 7.x 系列`伪`官方翻译:通过 NEST 来快捷试用 Elasticsearch
本系列已经已经全部完成,完整版可见:https://blog.zhuliang.ltd/categories/Elasticsearch/ 本系列博文是"伪"官方文档翻译(更加本土 ...
- Elasticsearch简单使用和环境搭建
Elasticsearch简单使用和环境搭建 1 Elasticsearch简介 Elasticsearch是一个可用于构建搜索应用的成品软件,它最早由Shay Bannon创建并于2010年2月发布 ...
- elasticsearch简单查询
elasticsearch简单查询示例: { "from": "0", //分页,从第一页开始 "size": "10" ...
- elasticsearch简单实现
初次接触分布式是全文搜索引擎,之前都是spinx+coreseek,先简单实现初步了解先 官方文档:https://www.elastic.co/guide/cn/elasticsearch/guid ...
- [000]socket通信--server和client实现的简单例子
在C语言中就学过scanf和printf,其实理解socket就跟这两个输入输出差不多,只不过是信息的传输而已. 1.TCP服务器端(server)的默认函数调用顺序: 按照上述的调用顺序,我们可以来 ...
- 转:ElasticSearch 简单入门
原文来自于:http://www.oschina.net/translate/elasticsearch-getting-started?cmp 教程样例 我们将要部署一个非常简单的应用--在一个部门 ...
- 分布式ElasticSearch简单介绍
这里我们解释一些通用的术语,比如集群(cluster).节点(node)和分片(shard).Elasticsearch的扩展机制,以及它怎样处理硬件故障.在此将探索怎样创建你的集群(cluster) ...
随机推荐
- Altium Designer 快捷键与技巧
在PCB中: 布线过程中,换层快捷键:"Ctrl" + "Shift" + "滚轮". 单独显示顶层或底层:按"SHIFT&qu ...
- python2x和python3x的一些区别
python2x:各种按照自己代码习惯给python贡献源码 python3x:重写之后的源码,优美,清晰,简单 版本 打印函数 rang函数 输入函数 python2x print 或 print( ...
- 20145202mc《计算机病毒》实践3
网站检测 http://www.virscan.org/ lab01-02.exe lab01-03.exe 分析这两个文件是否加壳了: Lab01-02.exe lab01-03.exe 查看两个样 ...
- 【CF613D】Kingdom and its Cities(虚树,动态规划)
[CF613D]Kingdom and its Cities(虚树,动态规划) 题面 洛谷 CF 翻译洛谷上有啦 题解 每次构建虚树,首先特判无解,也就是关键点中存在父子关系. 考虑\(dp\),设\ ...
- Filter配置多个url-pattern
java开发中会用的Filter过滤器,有时候开发需要,在一个Filter中需要配置多个过滤地址,即<url-pattern>,下面就说一下一个Filter过滤器中多个<url-pa ...
- Andorid自定义attr的各种坑
本文来自网易云社区 作者:孙有军 在开发Andorid应用程序中,经常会自定义View来实现各种各样炫酷的效果,在实现这吊炸天效果的同时,我们往往会定义很多attr属性,这样就可以在XML中配置我们想 ...
- .net MVC 图片水印,半透明
filter:alpha(opacity=50):这个是为IE6设的,可取值在0-100,其它三个0到1.-moz-opacity:0.5; 这个是为了支持一些老版本的Mozilla浏览器.-khtm ...
- 根据wsdl生成服务端代码
场景描述 最近在和一家公司做业务接口对接,由他们那边回调我们这边,对方直接扔过来一个webservice的wsdl文件,让我们按照他们的规范来做webservice服务, 大多数的对接应该是我们创建完 ...
- K8S全栈容器服务如何助力企业云化创新?
容器编排管理平台Kubernetes在实践两年多后,市场主导地位被正式确定,随着首批认证服务商的宣布,围绕着容器的应用编排部署服务已然成熟,Kubernetes开始在商业场景为企业创造价值.华为云在K ...
- uvaoj 133 - The Dole Queue(逻辑,环形队列数数)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...