Поскольку нет никакого способа добавить атрибут норм enable-false как часть аннотаций @field в сущности java, мы можем добавить все сопоставления (все необходимые типы с атрибутами в качестве сопоставлений) в файл mappings.json и ссылаться на этот файл в сущности. файл. Вроде как ниже
@Document(indexName = "jobindex")
@Setting(settingPath = "/config/elasticsearch-settings.json")
@Mapping(mappingPath = "/config/mappings.json") //THIS ONE TO ADD
public class JobIndex implements Serializable {
}
и mappings.json выглядят как
"mappings": {
"_doc": {
"properties": {
"title": {
"type": "text",
"norms": { "enabled": false }
}
}
}
}
ПРИМЕЧАНИЕ: когда вы добавляете определенные атрибуты как часть mappings.json, которые недоступны в аннотациях java @Field, тогда лучше добавлять все аннотации полей в файл json, а не в аннотации java @ Field. Таким образом, вывод заключается в том, что сущность java должна быть без аннотаций полей, и все сопоставления должны быть в файле mappings.json, и этот файл должен быть указан в заголовке сущности, как указано в первом блоке кода этого ответа.