2020年7月10日星期五

NEST教程系列:推断索引名

NEST教程系列:三种推断索引名写法

目录

  • NEST教程系列:三种推断索引名写法
    • 连接时设置默认索引
    • 设置 .NET 类映射索引名
    • 在创建请求的时候直接显式指定索引名
    • 总结

连接时设置默认索引

构建 ConnectionSettings 时调用 DefaultIndex() 方法指定默认索引名。当无法为请求解析具体索引名时使用默认索引名

var settings = new ConnectionSettings() .DefaultIndex("defaultindex");  var client = new ElasticClient(settings);var searchResponse = client.Search<Project>();

此时,当发送请求时实际 URL 如下

" id="设置-net-类映射索引名">设置 .NET 类映射索引名

构建 ConnectionSettings 时调用 DefaultMappingFor<T>() 方法为类对象配置映射的索引名

var settings = new ConnectionSettings() .DefaultMappingFor<Project>(m => m  .IndexName("projects") );var client = new ElasticClient(settings);var searchResponse = client.Search<Project>();

此时,当发送请求时实际 URL 如下

" 方法配置映射的索引名使用优先级高于 DefaultIndex() 方法设置的默认索引名
var settings = new ConnectionSettings() .DefaultIndex("defaultindex") .DefaultMappingFor<Project>(m => m  .IndexName("projects") );var client = new ElasticClient(settings);var projectSearchResponse = client.Search<Project>();

此时,当发送请求时实际 URL 如下

" >var objectSearchResponse = client.Search<object>();

发送请求时实际 URL 如下

" 还可以用于指定类型的其他默认值,包括属性名称、用于文档id的属性等等

在创建请求的时候直接显式指定索引名

对于需要索引名的API调用,可以在请求中显式地提供索引名

var settings = new ConnectionSettings();var client = new ElasticClient(settings);var response = client.Search<Project>(s => s .Index("some-other-index") );

此时,当发送请求时实际 URL 如下

" DefaultMappingFor<T>() 方法配置映射的索引名和DefaultIndex() 方法设置的默认索引名

var settings = new ConnectionSettings() .DefaultIndex("defaultindex") .DefaultMappingFor<Project>(m => m  .IndexName("projects") );var client = new ElasticClient(settings);var response = client.Search<Project>(s => s .Index("some-other-index"));

此时,当发送请求时实际 URL 如下

" id="总结">总结

执行请求时的索引名取值优先级排序为

  1. 在创建请求的时候直接显式指定索引名
  2. 设置 .NET 类映射索引名
  3. 连接时设置默认索引

🚀官网传送门

NEST教程系列:推断索引名海拍客美森韩蓬为推广当地产品,Shopee设立"购买马来西亚货"页面!亚马逊日本站Prime会员买家会费全面上涨!亚马逊Listing编写指南珠海长隆游组团珠海长隆自由行费用珠海长隆自由行费用

没有评论:

发表评论