NEST教程系列:推斷索引名

NEST教程系列:三種推斷索引名寫法

鏈接時設置默認索引

構建 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"

設置 .NET 類映射索引名

構建 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"

總結

執行請求時的索引名取值優先級排序爲

  1. 在建立請求的時候直接顯式指定索引名
  2. 設置 .NET 類映射索引名
  3. 鏈接時設置默認索引

🚀官網傳送門

相關文章
相關標籤/搜索