0
我有這樣的分析:的對象領域應用分析
{
"index": {
"number_of_shards": 1,
"analysis": {
"filter": {
"word_joiner": {
"type": "word_delimiter",
"catenate_all": true,
"preserve_original": true
}
},
"analyzer": {
"word_join_analyzer": {
"type": "custom",
"filter": [
"word_joiner"
],
"tokenizer": "keyword"
}
}
}
}
}
我把它在這一領域:
@Field(type = FieldType.Object, analyzer = "word_join_analyzer")
private Description description;
這裏是描述類:
public class Description {
@JsonProperty("localizedDescriptions")
private Map<String, String> descriptions = new HashMap<>();
}
這是由此產生的Elasticsearch映射爲此字段:
{
"description":{
"properties":{
"localizedDescriptions":{
"properties":{
"en":{
"type":"string"
},
"fr":{
"type":"string"
},
"it":{
"type":"string"
}
}
}
}
}
}
就像你所看到的,anlyzer根本不適用。它適用於字符串字段,但我很難用Object類型來完成它。有任何想法嗎?
謝謝!
編輯:我試圖用一個動態映射:
{
"iam":{
"properties":{
"dynamic_templates":[
{
"localized_strings_values":{
"path_match":"description.localizedDescriptions.*",
"mapping":{
"type":"string",
"analyzer":"word_join_analyzer"
}
}
}
]
}
}
}
但我有此錯誤:
Expected map for property [fields] on field [dynamic_templates] but got a class java.lang.String
爲什麼會出現這個錯誤?
您不能將分析器應用於對象字段,您需要將其顯式添加到所需的所有字符串字段中。 – Val
在這種情況下我該怎麼辦?這是一張地圖。 – Anna
您是否嘗試將分析儀直接放在說明字段中? – Val