C#&.NET Core(.NET 7)程序中如何使用Elasticsearch.Net和NEST直接执行原始的DSL查询脚本语句呢?
1.47K 次浏览
2 个回答
-
以下是.NET Core中使用NEST的
LowLevel.Search()
方法执行原始的DSL查询的示例:以下是对代码片段的解读:
1.创建
ConnectionSettings
对象在上面的代码中,创建了一个
ConnectionSettings
对象,用于配置与Elasticsearch服务器的连接。设置连接地址为http://192.168.1.91:9200
,并使用基本身份验证(用户名elastic
,密码123456
)进行身份验证。2.创建
ElasticClient
对象在上面的代码中,使用上一步中创建的
ConnectionSettings
对象创建了一个ElasticClient
对象,该对象提供了与Elasticsearch服务器进行高级别操作的方法,例如索引和查询数据等。3.创建查询DSL字符串
在上面的代码中,创建了一个包含DSL查询语句的JSON字符串。该查询使用了
match_all
查询,表示查询所有文档,同时指定返回结果数量为2。4.执行查询
在上面的代码中,使用
LowLevel.Search
方法执行查询,指定要查询的索引名称(test
)和查询DSL字符串(json
)作为参数。此外,指定了SearchResponse<dynamic>
作为响应类型,以便将响应转换为包含所有结果的SearchResponse
对象。查询结果可以通过Total
属性获取总命中数,通过Hits
属性获取每个命中文档的详细信息,例如文档ID、文档分数和文档字段等。5.处理查询结果
在上面的代码中,使用
Total
属性获取总命中数,并使用foreach
循环遍历每个命中文档的详细信息。在循环中,使用Source
属性获取文档的字段信息,例如在文档中使用名称为sid
的字段。