【发布时间】:2026-02-15 19:35:01
【问题描述】:
我是 ElasticSearch 的新手。我正在 ES 中尝试一个简单的家谱项目,并希望对名字和姓氏使用同义词。我有以下 ElasticSearch 索引设置,我希望在我的设置中添加两个同义词分析器,然后使用这两个在不同字段上进行搜索时同义词处理。我不知道如何将正确的条目添加到我的“设置”JSON 文件中
我的两个同义词文件分别称为 given_synonyms.txt 和 surname_synonyms.txt。我将不胜感激在获得此 json 文件的语法方面的帮助。
我已经为我想做的事情添加了(大写的)非常通用的伪代码,希望这样对读者更有意义。
{
"settings": {
"index": {
"number_of_shards": "128",
"number_of_replicas": "0",
"analysis": {
"filter": {
"dbl_metaphone": {
"type": "phonetic",
"encoder": "double_metaphone",
"max_code_len" : 5
}
},
"analyzer": {
"dbl_metaphone": {
"tokenizer": "standard",
"filter": "dbl_metaphone"
}
}
I ASSUME THE SYNONYM ENTRIES GO HERE FOR THE TWO SYNONYM FILES - BUT I DON'T KNOW HOW THAT SHOULD BE DONE
}
}
},
"mappings": {
"test": {
"_all": {
"enabled": false
},
"_source": {
"enabled": true
},
"properties": {
"GivenNames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
I WANT TO USE THE GIVEN_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
}
},
"Surnames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
I WANT TO USE THE SURNAME_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
}
},
"FatherGivenNames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE GIVEN_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"FatherSurnames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE SURNAME_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"MotherGivenNames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE GIVEN_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"MotherSurnames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE SURNAME_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"SpouseGivenNames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE GIVEN_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"SpouseSurnames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE SURNAME_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"ChildrenGivenNames": {
"type": "keyword",
"index_options": "freqs",
"store": "false",
"similarity": "boolean",
"norms": "false",
"fields": {
"phonetic": {
"type": "text",
"analyzer": "dbl_metaphone"
}
}
I WANT TO USE THE GIVEN_SYNONYMS SEARCH ANALYZER HERE IN ADDITION TO THE DBL_METAPHONE
},
"BirthYears": {
"type": "short"
},
"BirthLocations": {
"type": "integer"
},
"DeathYears": {
"type": "short"
},
"DeathLocations": {
"type": "integer"
},
"MarriageLocations": {
"type": "integer"
},
"MarriageYears": {
"type": "integer"
},
"ResidenceLocations": {
"type": "integer"
}
}
}
}
}
【问题讨论】:
标签: elasticsearch synonym