嗨我正在使用彈性搜索彈簧數據。我的項目的域結構不斷變化。所以我必須刪除索引以便每次更改映射。爲了克服這個問題,我使用別名。 我創建了使用別名:如何使用彈簧數據與彈性搜索別名進行交互
elasticsearchTemplate.createIndex(Test.class);
elasticsearchTemplate.putMapping(Test.class);
String aliasName = "test-alias";
AliasQuery aliasQuery = new AliasBuilder()
.withIndexName("test")
.withAliasName(aliasName).build();
elasticsearchTemplate.addAlias(aliasQuery);
我有一個測試類:
import org.springframework.data.annotation.Id
import org.springframework.data.elasticsearch.annotations.Document
import org.springframework.data.elasticsearch.annotations.Field
import org.springframework.data.elasticsearch.annotations.FieldIndex
import org.springframework.data.elasticsearch.annotations.FieldType
import org.springframework.data.elasticsearch.annotations.Setting
@Document(indexName = "test", type = "test")
@Setting(settingPath = 'elasticSearchSettings/analyzer.json')
class Test extends BaseEntity{
@Id
@Field(type = FieldType.String, index = FieldIndex.not_analyzed)
String id
@Field(type = FieldType.String, index = FieldIndex.analyzed, indexAnalyzer = "generic_analyzer", searchAnalyzer = "generic_analyzer")
String firstName
}
TestRepository類:
package com.as.core.repositories
import com.as.core.entities.Test
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository
interface TestRepository extends ElasticsearchRepository<Test, String>
{
}
我的問題是如何從別名讀取索引,而不是本身? 寫操作是否也發生在別名上。 我看了下面的鏈接: https://www.elastic.co/guide/en/elasticsearch/guide/current/index-aliases.html#index-aliases 它說,我們將不得不互動的別名,而不是實際的索引。如何使用Elasticsearch Spring數據Java API來實現這一目標。
這是一個開放的問題:https://jira.spring.io/browse/DATAES-192 –