构建
ConnectionSettings
时调用DefaultIndex()
方法指定默认索引名。当没法为请求解析具体索引名时使用默认索引名html
var settings = new ConnectionSettings() .DefaultIndex("defaultindex"); var client = new ElasticClient(settings); var searchResponse = client.Search<Project>();
此时,当发送请求时实际 URL 以下api
"http://localhost:9200/defaultindex/_search"
构建
ConnectionSettings
时调用DefaultMappingFor<T>()
方法为类对象配置映射的索引名app
var settings = new ConnectionSettings() .DefaultMappingFor<Project>(m => m .IndexName("projects") ); var client = new ElasticClient(settings); var searchResponse = client.Search<Project>();
此时,当发送请求时实际 URL 以下elasticsearch
"http://localhost:9200/projects/_search"
DefaultMappingFor<T>()
方法配置映射的索引名使用优先级高于 DefaultIndex()
方法设置的默认索引名var settings = new ConnectionSettings() .DefaultIndex("defaultindex") .DefaultMappingFor<Project>(m => m .IndexName("projects") ); var client = new ElasticClient(settings); var projectSearchResponse = client.Search<Project>();
此时,当发送请求时实际 URL 以下ide
"http://localhost:9200/projects/_search"
可是如下写法ui
var objectSearchResponse = client.Search<object>();
发送请求时实际 URL 以下code
"http://localhost:9200/defaultindex/_search"
DefaultMappingFor<T>()
还能够用于指定类型的其余默认值,包括属性名称、用于文档id的属性等等对于须要索引名的API调用,能够在请求中显式地提供索引名htm
var settings = new ConnectionSettings(); var client = new ElasticClient(settings); var response = client.Search<Project>(s => s .Index("some-other-index") );
此时,当发送请求时实际 URL 以下对象
"http://localhost:9200/some-other-index/_search"
当在请求中显示指定索引名时,它将优先于 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 以下
"http://localhost:9200/some-other-index/_search"
执行请求时的索引名取值优先级排序为