Я пытаюсь реализовать обратную связь по релевантности для Elastic Search (Elastic.co).
Мне известно об ускорении запросов, которые позволяют задавать положительные и отрицательные термины, при этом идея состоит в том, чтобы сбрасывать со счетов негативные термины, не исключая их, как это было бы в случае логического значения must_not.
Однако я пытаюсь добиться многоуровневого повышения как положительных, так и отрицательных терминов.
То есть я хочу взять список объединенных положительных и отрицательных условий и сгенерировать запрос таким образом, чтобы были разные положительные и отрицательные уровни усиления, каждый из которых содержал свои собственные условия запроса.
что-то вроде (псевдозапрос):
query{
{
terms: [very relevant terms]
pos_boost: 3
}
{
terms: [relevant terms]
pos_boost: 2
}
{
terms: [irrelevant terms]
neg_boost: 0.6
}
{
terms: [very irrelevant terms]
neg_boost: 0.3
}
}
Мой вопрос заключается в том, можно ли этого добиться с помощью вложенных запросов boosting или мне лучше использовать несколько предложений should.
Меня беспокоит то, что я не уверен, дает ли повышение значения 0,2 в предложении should логического запроса документу положительное увеличение оценки или нет, так как я хочу дисконтировать документ, а не обеспечить какое-либо увеличение счета.
При повышении запросов проблема заключается в том, что я не могу контролировать степень взвешивания положительных терминов.
Будем очень признательны за любую помощь или предложения по другим реализациям. (Что я действительно хотел сделать, так это создать языковую модель для релевантных документов и использовать ее для ранжирования, но я не понимаю, как это может быть легко достигнуто в эластичности.)