Чтобы использовать синонимы в elasticsearch, вы должны сначала создать анализатор синонима в настройках, чтобы добавить поддержку синонима для определенного поля. Также в настройках вы также можете определить синонимы.
PUT testindex_510
{
"settings": {
"analysis": {
"analyzer": {
"synonymanalyzer": {
"tokenizer": "standard",
"filter": ["lowercase", "locationsynfilter"]
},
"synonymanalyzer1": {
"tokenizer": "standard",
"filter": ["lowercase", "titlesynfilter"]
}
},
"filter": {
"locationsynfilter": {
"type": "synonym",
"synonyms": [
"lokhandwala,andheri west",
"versova,andheri west",
"mazgaon,byculla"
]
},
"titlesynfilter": {
"type": "synonym",
"synonyms": [
"golds , gold",
"talwalkars, talwalkar"
]
}
}
}
},
"mappings": {
"testtype": {
"properties": {
"title": {
"type": "string",
"analyzer": "synonymanalyzer1"
},
"location": {
"type": "string",
"analyzer": "synonymanalyzer"
}
}
}
}
}
В приведенных выше настройках я определил два анализатора для двух разных полей. Эти анализаторы поддерживают синонимы, а также определяют синонимы в фильтре для каждого анализатора.
Вы также определяете синонимы в отдельном txt-файле вместо определения в сопоставлениях, подобных следующему.
{
"settings": {
"analysis": {
"analyzer": {
"synonymanalyzer": {
"tokenizer": "standard",
"filter": ["lowercase", "locationsynfilter"]
},
"synonymanalyzer1": {
"tokenizer": "standard",
"filter": ["lowercase", "titlesynfilter"]
}
},
"filter": {
"titlesynfilter": {
"type": "synonym",
"synonyms_path": "analysis/titlesynonym.txt"
},
"locationsynfilter": {
"type": "synonym",
"synonyms_path": "analysis/locationsynonym.txt"
}
}
}
},
"mappings": {
"testtype": {
"properties": {
"title": {
"type": "string",
"analyzer": "synonymanalyzer1"
},
"location": {
"type": "string",
"analyzer": "synonymanalyzer"
}
}
}
}
}
где должен быть ваш txt-файл. Для более подробной информации обратитесь к documentation.
ipod, i-pod, i pod
foozball , foosball
universe , cosmos
Надеется, что это помогает
вы можете также поделиться своими отображениями – user3775217
wherte вы хотите иметь синонимы? – Mysterion