Как настроить несколько анализаторов для одного поля в asticsearch?
Я пытаюсь добавить анализатор иерархии путей к одному полю в моем типе.
Я хочу настроить анализатор пути и анализатор обратного пути в одном поле, чтобы получить нормальный путь и обратный путь для одного поля.
например,
Путь ="/ угловая / директива / структурный"
Я хочу настроить это поле пути, например, всякий раз, когда я анализирую это поле, я должен получать токены в обычном порядке и в обратном порядке, если я укажу обратное.
Ниже мое отображение.
PUT /elastic_course
{
"settings": {
"analysis": {
"analyzer": {
"path_analyzer": {
"tokenizer": "path_tokenizer"
},
"reverse_path_analyzer": {
"tokenizer": "reverse_path_tokenizer"
}
},
"tokenizer": {
"path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
"replacement": "-"
},
"reverse_path_tokenizer": {
"type": "path_hierarchy",
"delimiter": "/",
"replacement": "-"
}
}
}
},
"mappings": {
"book" : {
"properties": {
"author": {
"type": "string",
"index": "not_analyzed"
},
"genre": {
"type": "string",
"index": "not_analyzed"
},
"score": {
"type": "double"
},
"synopsis": {
"type": "string",
"index":"analyzed",
"analyzer":"english"
},
"title": {
"type": "string"
},
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
}
}
}
}
Я настроил этот анализатор. Теперь, как я могу получить токены для пути и обратного пути?
Благодарю.
1 ответ
Решение
Вы можете объявить подполя для path
поле, каждое со своим анализатором:
"path":{
"type":"string",
"analyzer":"path_analyzer",
"fields": {
"reverse": {
"type":"string",
"analyzer":"reverse_path_analyzer"
}
}
}
Тогда вы можете обратиться к path
а также path.reverse
в ваших запросах.