Elasticsearch.Net Nest 5.0.0 用法
来源:互联网 发布:软件配置管理人员职责 编辑:程序博客网 时间:2024/04/30 14:53
1:引用dll
using Elasticsearch.Net;using Nest;
2:代码(如下代码是查询以及创建index的基本用法,包含模糊查询和精确查询)
var node = new Uri("http://localhost:9200"); var connectionPool = new SniffingConnectionPool(new[] { node }); var config = new ConnectionConfiguration(connectionPool).DisableDirectStreaming().BasicAuthentication("admin", "123qwe!@#").RequestTimeout(TimeSpan.FromSeconds(60)); var client = new ElasticLowLevelClient(config); var settings = new ConnectionSettings(new Uri("http://localhost:9200")).DefaultIndex("2017.03.08").DisableDirectStreaming(); var client1 = new ElasticClient(settings); var request = new SearchRequest { From = 0, Size = 10, //Query = new TermQuery { Field = "Name", Value = "FundPayService" }, PostFilter = new QueryContainer(new MatchAllQuery()) }; //var response = client1.Search<logs>(request); //var result = client1.Search<logs>(s => s.Query(q => q.MatchAll())); //IReadOnlyCollection<logs> content = result.Documents; //按照字段查询--或关系 var r1 = new SearchRequest { Query = new MatchQuery { Field = "IP", Query = " BACKEND1" } }; var result2 = client1.Search<logs>(r1); //var r4 =client1.Search<logs>(s => s.Query(b => b.QueryString(t1 => t1.DefaultField("IP").Query("BACKEND")))); var filter= new SearchRequest<logs> { Query = new MatchQuery { Field = "IP", Query = "BACKEND" } }; var result4 = client1.Search<logs>(filter); IReadOnlyCollection<logs> content2 = result2.Documents; //模糊查询1 var r5 = client1.Search<logs>(s => s.Query(q => q.QueryString(p => p.Query("BACKEN*")))); var r55 = r5.Documents; //模糊查询2 var filter2 = new SearchRequest<logs> { Query =new MatchQuery { Field = "IP", Query = "BACKEN" } }; r5 = client1.Search<logs>(filter2); //范围查询 //下面这段代码会查询不出任何东西。因为生成json中的field字段:Scur 是为scur。 由于elastic里面的字段是Scur。导致无法找到该字段。建议以后elastic里面的字段都为小写 //var r6 = client1.Search<logs>(s => s.Query(q => q.Range(p=>p.Field(obj=>obj.Scur).GreaterThanOrEquals(1).LessThanOrEquals(5)))); var r6 = client1.Search<logs>(s => s.Query(q => q.Range(p => p.Field("Scur").GreaterThanOrEquals(1).LessThanOrEquals(5)))); var r66 = r5.Documents; //创建索引 索引字段必须小写 ICreateIndexResponse icr =client1.CreateIndex("ip2"); //建立索引连接 var settings2 = new ConnectionSettings(new Uri("http://localhost:9200")).DefaultIndex("ip2").DisableDirectStreaming(); var client2 = new ElasticClient(settings2); IIndexResponse iir =client2.Index<logs>(new logs { IP = "F", Scur = "2" }); //查询所有index数据 var r7 =client2.Search<logs>(q => q.MatchAll()).Documents; //对于简单结构的数据 var r8 = client2.Search<logs>(p => p.Query(q => q.Term(f => f.Field(obj => obj.IP).Value('F')))); r8 = client2.Search<logs>(p => p.PostFilter(q => q.Term(f => f.Field(obj => obj.IP).Value('F')))); //对于有嵌套结构的数据 r8 = client2.Search<logs>(p => p.Query(q => q.Nested(x => x.Query(k => k.Term(c => c.Field(obj => obj.IP).Value('F')))))); var r88=r8.Documents;
如果发现代码和出来的效果不一致,可以通过断点调试查看api字段里拼接好的查询条件,拷贝放进elasticsearch中的复合查询界面,查看哪里出了问题。
--复合查询界面在插件head里,需要自己安装。
0 0
- Elasticsearch.Net Nest 5.0.0 用法
- Elasticsearch .net client NEST使用说明
- .NET 分布式 搜索 elasticsearch.net NEST
- .NET 分布式 搜索 elasticsearch.net NEST
- NEST.net Client For Elasticsearch简单应用
- ElasticSearch NEST
- ElasticSearch.net NEST批量创建修改删除索引完整示例
- ElasticSearch NEST搜索
- Elasticsearch NEST使用指南:映射和分析
- Elasticsearch(五)【NEST高级客户端--开始】
- Elasticsearch(六)【NEST高级客户端--连接】
- Elasticsearch(七)【NEST高级客户端--序列化】
- Elasticsearch(八)【NEST高级客户端--Mapping映射】
- Elasticsearch(九)【NEST高级客户端--分析器】
- Elasticsearch(十)【NEST高级客户端--搜索查询】
- Elasticsearch(十一)【NEST高级客户端--聚合】
- Elasticsearch(十二)【NEST高级客户端--规范】
- Elasticsearch(十三)【NEST高级客户端--常见类型】
- 同步异步和阻塞非阻塞的区别
- Hibernate做同一个事物中做两次删除问题
- 一句话说明canvas 中的save()和restore()的用途
- js判断手指滑动方向(移动端)
- localtime与localtime_r
- Elasticsearch.Net Nest 5.0.0 用法
- Spring序列化与反序列化
- Android异常:android.os.TransactionTooLargeException
- 题目1481:Is It A Tree?
- Java 大数BigDecimal常用处理
- Linux中rc的含义
- 常用三方总结
- python csv 读取两种方法
- 坐标系之间的旋转平移变换与对应变换矩阵的关系