栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将对象序列化为JSON,然后使用该对象通过NEST在elasticsearch中发送查询

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将对象序列化为JSON,然后使用该对象通过NEST在elasticsearch中发送查询

NEST和Elasticsearch.Net是NEST在后台使用的低级客户端,可以灵活地查询。使用NEST,您有两种不同的方式:

NEST-高级客户

1.Fluent API

var query = "bkala";var searchResult = client.Search<Mydocument>(s => s    .Query(q => q        .Match(m => m .Field("_all") .Query(query)        )    ));

如上所述,此API使用lambda表达式来定义一个流畅的接口,该接口模仿Elasticsearch json API和查询DSL的结构。

2.对象初始化语法

var query = "bkala";var request = new SearchRequest<Mydocument>{    Query = new MatchQuery    {Field = "_all",        Query = query    }};var searchResult = client.Search<Mydocument>(request);

如果不是lambda表达式,那么您始终可以使用特定搜索类型定义搜索。

Elasticsearch.Net-低级客户端

如果您想使用匿名类型(根据您的问题),json字符串或查询的字节表示形式进行查询,则可以使用低级客户端Elasticsearch.Net来实现。通过

.LowLevel
属性,低级客户端在高级别客户端上公开

1,匿名类型

var query = new{    query = new    {        match = new        { _all = new {     query = "bkala" }        }    }};var searchResult = client.LowLevel.Search<SearchResponse<Mydocument>>(query);

在高级客户端上使用低级客户端意味着您仍然可以利用Json.NET对搜索结果进行反序列化;在此示例中,可以通过以下方式访问搜索响应

searchResult.Body

2.杰森弦

var query = @"{  ""query"": {    ""match"": {      ""_all"": {        ""query"": ""bkala""      }    }  }}";var searchResult = client.LowLevel.Search<SearchResponse<Mydocument>>(query);

3.字节数组

var bytes = new byte[] { 123, 13, 10, 32, 32, 34, 113, 117, 101, 114, 121, 34, 58, 32, 123, 13, 10, 32, 32, 32, 32, 34, 109, 97, 116, 99, 104, 34, 58, 32, 123, 13, 10, 32, 32, 32, 32, 32, 32, 34, 95, 97, 108, 108, 34, 58, 32, 123, 13, 10, 32, 32, 32, 32, 32, 32, 32, 32, 34, 113, 117, 101, 114, 121, 34, 58, 32, 34, 98, 107, 97, 108, 97, 34, 13, 10, 32, 32, 32, 32, 32, 32, 125, 13, 10, 32, 32, 32, 32, 125, 13, 10, 32, 32, 125, 13, 10, 125 };var searchResult = client.LowLevel.Search<SearchResponse<Mydocument>>(bytes);

以上所有方法都会产生以下查询

{  "query": {    "match": {      "_all": {        "query": "bkala"      }    }  }}

请查看github存储库上的入门指南以及Elastic网站上的文档。我们一直在努力改善文档,在您认为我们缺乏的领域,PR受到了欢迎:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/403629.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号