Elastic Search.NET -NEST使用(1)
1.Elastic Search.NET -NEST使用(1)
2.ElasticSearch NEST操作(2)3.elasticsearch 基础知识4.elastic search 原理介绍5.ElasticSearch NEST操作(3)详细介绍Elastic Search.NET -NEST
Object Initializer 语法去构造查询#
Match All query#
最简单的查询应该就是 match_all
了,这种查询会返回所有的文档,并给每份文档的 _score
统一赋值为 1.0
匹配的文档并不是都会在一次响应中全部返回,默认情况下只返回前十份。你可以使用
from
和size
来将结果分页
var searchResponse = client.Search<Project>(s => s
.Query(q => q
.MatchAll()
)
);
上面使用 Fluent API 来描述查询。
NEST 还公开了一种 Object Initializer 语法去构造查询
var searchRequest = new SearchRequest<Project>
{
Query = new MatchAllQuery()
};
searchResponse = client.Search<Project>(searchRequest);
Search request parameters#
search request 有一些可用的参数,你可以参阅 search 以获得详细的信息。
以下是一个示例:
var searchRequest = new SearchRequest<Tmx2ESModel>();
searchRequest.From = page;
searchRequest.Size = size;
var list = new List<QueryContainer>();
//optional
if (!string.IsNullOrWhiteSpace(inModel.ClientGuid))
{
//精准查询使用keyword
var clientGuid = new MatchQuery() { Field = Infer.Field<Tmx2ESModel>(f => f.ClientGuid.Suffix("keyword")), Query = inModel.ClientGuid };
list.Add(clientGuid);
}
searchRequest.Query = new BoolQuery() { Must = list };
var searchResponse = ESClient.Client.SearchAsync<Tmx2ESModel>(searchRequest);
在net core 注册ES#
添加ESSever
/// <summary>
/// 访问ElasticSearch服务类
/// </summary>
public class ESSever : IESSever
{
/// <summary>
/// Linq查询的官方Client
/// </summary>
public IElasticClient ElasticLinqClient { get; set; }
/// <summary>
/// Js查询的官方Client
/// </summary>
public IElasticLowLevelClient ElasticJsonClient { get; set; }
public ESSever(IConfiguration configuration)
{
var uris = configuration["ElasticSearchContext:ESUri"].Split(",").ToList().ConvertAll(x => new Uri(x));
var connectionPool = new StaticConnectionPool(uris);//配置请求池
var settings = new ConnectionSettings(connectionPool).RequestTimeout(TimeSpan.FromSeconds(30));//请求配置参数
settings.DisableDirectStreaming().DefaultIndex(configuration["ElasticSearchContext:ESIndexName"]);
this.ElasticJsonClient = new ElasticLowLevelClient(settings);//json请求客户端初始化
this.ElasticLinqClient = new ElasticClient(settings);//linq请求客户端初始化
}
/// <summary>
/// Creates the Tmx2ESModel asynchronous.
/// </summary>
/// <param name="model">The model.</param>
/// <returns></returns>
public Task<Nest.CreateResponse> CreateAsync(Tmx2ESModel model)
{
return ElasticLinqClient.CreateDocumentAsync(model);
}
}
在startup里面在ConfigureServices下面添加如下代码即可
services.AddSingleton<IESSever, ESSever>();
参考:#
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/p/14885581.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
2016-06-15 数据结构和算法 – 11.高级排序算法(上)
2014-06-15 日期的常规运用
2011-06-15 9章 表单[js] —— javaScript宝典