Да, очень. ElasticSearch отлично справляется с синонимами. Вот пример того, как я настроил синонимы на моем кластере -
curl -XPOST localhost:9200/**new-index** -d '{
"settings": {
"number_of_shards": 2,
"number_of_replicas": 0,
"analysis": {
"filter": {
"synonym": {
"type": "synonym",
"synonyms_path": "synonyms/synonyms.txt"
}
},
"analyzer": {
"synonym": {
"tokenizer": "lowercase",
"filter": [
"synonym"
]
}
}
}
},
"mappings": {
"**new-type**": {
"_all": {
"enabled": false
},
"properties": {
"Title": {
"type": "multi_field",
"store": "yes",
"fields": {
"Title": {
"type": "string",
"analyzer": "synonym"
}
}
}
}
}
}
}'
Путь к файлу синонимы выглядит внутри конфигурации папки для папки синонимов и находит текстовый файл. Пример содержимого synonyms.txt для ваших требований будет -
Deutsch, XYZ
ПОМНИТЕ - если у вас есть строчной фильтр по времени индексных синонимам должны быть в нижний регистр. Перезагрузите узлы, если они не работают.
Да, конечно http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-synonym-tokenfilter.html – phoet