如何通过过滤数据库字段实现更快的媒体库搜索
  • 2周前
  • 如何通过过滤数据库字段实现更快的媒体库搜索32
  • 如果你的媒体库文件数量非常多,那么后台搜索媒体库文件的时候就是一个噩梦,排除服务器性能问题,大量同样的文件名或者文件描述内容,将会降低你的搜索效率以及准确率。

    媒体库搜索速度慢的原因包括:LIKE子句的使用、大型表的连接、帖子元数据的搜索、非特定分组与排序以及SQL_CALC_FOUND_ROWS的使用。

    为了解决上面的问题,我们需要采取一些策略来实行优化,包括下面几个方面:

    索引:确保数据库表适当索引。 查询优化:自定义搜索功能,限制搜索字段或使用更高效的查询。 自定义表:对于非常大的数据集,考虑使用设计有高效索引的自定义表存储频繁搜索的数据。 外部搜索解决方案:实现像 Elasticsearch 或 Algolia 这样的外部搜索解决方案,它们针对全文搜索进行了优化,并且比 WordPress 默认搜索更有效。

    其次,通过下面的代码,可以将搜索限制在标题范围内,经过处理后的搜索速度将大幅提升,具体代码如下:

    function custom_media_library_search_by_title_only( $search, $wp_query ) {
        global $pagenow, $wpdb;
    
        // Check if we are in the admin area and on the correct page
        if ( is_admin() && 'upload.php' === $pagenow && $wp_query->is_main_query() ) {
            // Check if it's a search query
            if ( ! empty( $search ) ) {
                // Extracting the search term used from the original query
                $terms = isset( $wp_query->query['s'] ) ? $wp_query->query['s'] : '';
                if ( ! empty( $terms ) ) {
                    // Modify the search query to search only by post title.
                    // The %s is a placeholder for the search term, which is sanitized in the next step.
                    $search = $wpdb->prepare( " AND {$wpdb->posts}.post_title LIKE %s", '%' . $wpdb->esc_like( $terms ) . '%' );
                }
            }
        }
    
        return $search;
    }
    add_filter( 'posts_search', 'custom_media_library_search_by_title_only', 10, 2 );
    

    原文地址:https://convesio.com/knowledgebase/article/faster-media-library-searching-in-wordpress-by-filtering-database-fields/

  • 联系我们
  • 有任何疑问欢迎联系我们
  • WP新手学园
  • 如何通过过滤数据库字段实现更快的媒体库搜索
  • 邮箱:2830776172#qq.com(#换成@)
  • 回复时间:9:00-19:00
  • 如果提问.请图文并茂,详细描述问题
  • 如何通过过滤数据库字段实现更快的媒体库搜索
  • 微信号:wpxsxy_official
  • 仅支持付费解决问题
  • *并非所有问题都会被回复
  • 如何通过过滤数据库字段实现更快的媒体库搜索
  • QQ:2830776172
  • 回复时间:9:00-19:00
  • QQ仅支持付费提问,时间有限,尽情谅解
  • 如何通过过滤数据库字段实现更快的媒体库搜索
  • QQ群:198768181
  • 有问题可以进去提问,寻求群友帮助
  • *并非所有问题都会被回复
  • 如何通过过滤数据库字段实现更快的媒体库搜索
  • 咸鱼:WP新手学园
  • 如果对于直接交易不放心,可以走闲鱼
  • *咸鱼价格不作为最终交易价格
  • 备案号:鄂ICP备2021011647号-1