Придайте вес последним постдатам - PullRequest
0 голосов
/ 27 июня 2018

Я использую эластичный пресс в проекте. Я включил в индекс поле meta_field, в котором я хочу сделать совпадения (более важные, чем заголовок или что-то еще)

На pre_get_post я делаю следующее: $query->set( 'search_fields', array( 'meta' => array( 'meta_title' ), 'post_content', 'post_excerpt', ) );

Я могу получить совпадения для этого мета, но мне нужно отсортировать их по дате, это означает, что, учитывая совпадения, придать больший вес последним сообщениям.

Я считаю, что здесь нужно использовать функцию затухания, но я не совсем уверен, что это лучший способ.

Есть идеи?

P.s: это функция exp, которую она использует, но кажется, что она не работает должным образом

"exp": { "post_date_gmt": { "scale": "14d", "decay": 0.25, "offset": "7d" } },

1 Ответ

0 голосов
/ 02 июля 2018

Да, функция распада это то, что вы хотите. Это довольно сильное затухание, которое вы используете, поэтому, возможно, ваш запрос function_score неправильно упаковывает весь запрос. Похоже, что ElasticPress имеет поддержку панели отладки , так что, возможно, это поможет вам понять, что не так с запросом.

Я обычно нахожу гауссовские распады более гладкими. Вот несколько примеров того, что я использовал:

...