Я посылаю запрос, как это: (с помощью запроса {все})Elasticsearch: Как получить общий балл как сумму очков повышения?
{
"query": {
"custom_filters_score": {
"query": {
"match_all": {}
},
"filters": [
{
"filter": {
"range": {
"last_contact_at": {
"gte": "2013-06-21T12:02:25Z"
}
}
},
"boost": 1
},
{
"filter": {
"range": {
"available_at": {
"gte": "2013-06-28"
}
}
},
"boost": 2
},
{
"filter": {
"term": {
"company_type": "intern"
}
},
"boost": 10
},
{
"filter": {
"range": {
"friends_count": {
"from": 1
}
}
},
"boost": 3
},
{
"filter": {
"term": {
"blacklisted": true
}
},
"boost": -100
},
{
"filter": {
"term": {
"focuses": "ruby php"
}
},
"boost": 5
},
{
"filter": {
"term": {
"tags": "ruby php"
}
},
"boost": 4
}
],
"score_mode": "total"
}
}
}
и я получаю следующий ответ с max_score: 16, которая является суммой моих точек наддува.
Response
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 10,
"max_score": 16,
...
И когда я отправляю тот же custom_filters_score, но с запросом {термин строка}
{
"query": {
"custom_filters_score": {
"query": {
"query_string": {
"query": "ruby php"
}
},
"filters": [
{
"filter": {
"range": {
"last_contact_at": {
"gte": "2013-06-21T12:03:46Z"
}
}
},
"boost": 1
},
{
"filter": {
"range": {
"available_at": {
"gte": "2013-06-28"
}
}
},
"boost": 2
},
{
"filter": {
"term": {
"company_type": "intern"
}
},
"boost": 10
},
{
"filter": {
"range": {
"friends_count": {
"from": 1
}
}
},
"boost": 3
},
{
"filter": {
"term": {
"blacklisted": true
}
},
"boost": -100
},
{
"filter": {
"term": {
"focuses": "ruby php"
}
},
"boost": 5
},
{
"filter": {
"term": {
"tags": "ruby php"
}
},
"boost": 4
}
],
"score_mode": "total"
}
}
}
и я получаю следующий ответ с max_score: 8,990471
Ответ
{
"took": 4,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 6,
"max_score": 8.990471,
...
Как достичь max_score
как сумма моих пунктов повышения, а также показать только результаты, содержащие термин?
SearchService: https://gist.github.com/8f13ce2be820d9ef1959
Отдельно от 'max_score' вы получаете ожидаемые результаты? Если нет, можете ли вы привести пример с объяснением? – ramseykhalaf