Igo*_*ski 5 elasticsearch spring-boot spring-data-elasticsearch
在我的Spring Boot应用程序中,我有一个@Setting注释指向设置JSON文件,但似乎已被完全忽略。
@Setting(settingPath = "/settings/elasticsearch-settings.json")
@Document(indexName = "hermes", type = "client", shards = 1, replicas = 0, refreshInterval = "-1")
public class Client {
@Id
private String externalId;
private String name;
private String surname;
private String taxNumber;
private String uid;
//getters and setter intentionally left out
}
Run Code Online (Sandbox Code Playgroud)
我的设置文件位于:
src/main/resources/settings/elasticsearch-settings.json
Run Code Online (Sandbox Code Playgroud)
该文件的内容如下:
{
"analysis": {
"analyzer": {
"my_ngram_analyzer": {
"tokenizer": "my_ngram_tokenizer"
}
},
"tokenizer": {
"my_ngram_tokenizer": {
"type": "nGram",
"min_gram": "2",
"max_gram": "3",
"token_chars": [
"letter",
"digit"
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用Elasticsearch REST API运行它时,它可以毫无问题地更改设置,因此我认为JSON本身是有效的。但是,即使我放置了无效的JSON或一起删除了文件,我也一无所获,Spring也没有警告或错误。这就是为什么我的猜测是完全忽略了注释。
如果可能与此有关,那么我还有一个Elasticsearch配置类,用于在端口9200上公开客户端。它带有以下注释:
@EnableConfigurationProperties(ElasticsearchProperties.class)
Run Code Online (Sandbox Code Playgroud)
并且:
@EnableAutoConfiguration(exclude= { ElasticsearchAutoConfiguration.class })
Run Code Online (Sandbox Code Playgroud)
我主班上的注释。
您的elasticsearch-settings.json文件缺少该index元素。尝试像这样:
{
"index": {
"analysis": {
"analyzer": {
"my_ngram_analyzer": {
"tokenizer": "my_ngram_tokenizer"
}
},
"tokenizer": {
"my_ngram_tokenizer": {
"type": "nGram",
"min_gram": "2",
"max_gram": "3",
"token_chars": [
"letter",
"digit"
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |