У Elasticsearch есть две аналогичные функции для получения "похожих" документов:
Существует "Больше похоже на этот API" . Это дает мне документы, похожие на данные. Однако я не могу использовать его в более сложных выражениях.
Существует также запрос "more_like_this"
для использования в API поиска. Я могу использовать его в bool или повышать выражения, но я могу" t дать ему идентификатор документа. Я должен предоставить параметр "like_text"
.
У меня есть документы с тегами и контентом. В некоторых документах будут хорошие теги, а у некоторых их не будет. Мне нужна функция "Подобные документы", которая будет работать каждый раз, но ранжирует документы с соответствующими тегами выше, чем документы с соответствующим текстом. Моя идея:
{
"boosting" : {
"positive" : {
"more_like_this" : {
"fields" : ["tag"],
"id" : "23452",
"min_term_freq" : 1
}
},
"negative" : {
"more_like_this" : {
"fields" : ["tag"],
"id" : "23452",
}
},
"negative_boost" : 0.2
}
}
Очевидно, это не работает, потому что в "more_like_this"
нет "id"
. Каковы альтернативы?