Я впервые пытаюсь использовать Elasticsearch и прошу прощения за любой неудобный вопрос.
Я пытаюсь использовать эластичный поиск в WordPress по двум основным причинам: первая производительность и вторая функция «связанные посты» более высокого качества.
Я установил сервер Flexiblesearch, я установил плагин Wordpress для Elaspress, синхронизировал (проиндексировал) базу данных с помощью плагина. поиск работает очень хорошо, но не связанные посты.
Похожие посты дают мне только последние опубликованные статьи не похожие посты:
Я вызываю эту функцию плагина ep_find_related (post_id, return), которая должна возвращать мне похожие сообщения, но вместо этого она возвращает последние сообщения, которые не связаны с post_id. Ниже приведена функция плагина с функцией formated_args:
function ep_related_posts_formatted_args( $formatted_args, $args ) {
if ( ! empty( $args[ 'more_like' ] ) ) {
$formatted_args[ 'query' ] = array(
'more_like_this' => array(
'ids' => is_array( $args[ 'more_like' ] ) ? $args[ 'more_like' ] : array( $args[ 'more_like' ] ),
'fields' => apply_filters( 'ep_related_posts_fields', array( 'post_title', 'post_content', 'terms.post_tag.name' ) ),
'min_term_freq' => 1,
'max_query_terms' => 12,
'min_doc_freq' => 1,
)
);
}
return $formatted_args;
}
/**
Search Elasticsearch for related content
@param int $post_id
@param int $return
@since 2.1
@return array|bool
*/
function ep_find_related( $post_id, $return = 5 ) {
$args = array(
'more_like' => $post_id,
'posts_per_page' => $return,
'ep_integrate' => true,
);
Пожалуйста, дайте мне знать, что я делаю неправильно
Спасибо, что нашли время помочь мне.