在WordPress上使用ElasticSearch

时间:2020-05-26 作者:Peter

我是个傻瓜,所以感谢你的耐心:-)

我正在尝试使用ElasticSearch和使用ElasticPress插件的Wordpress安装。所有配置和生产中。到目前为止取得了惊人的成绩。

我对所有ES的使用位置感到困惑。

“默认情况下,它仅在搜索页上工作。如果要使用它处理任何其他页,或索引、循环、主页、存档、税务(WP\\U查询),则必须添加到查询中:”“ep\\U integrate”“=>true”

有人能帮我用代码片段实现这个吗?

谢谢

1 个回复
SO网友:Tony Djukic

下面是我最近如何应用它以及我的观察结果:

FAQ页面加载时间介于0.6秒到0.9秒之间。这是一个旨在显示所有常见问题的页面,但将其分为常见问题类别。(这是一种完全自定义的post\\u类型和自定义分类法。)我的团队仍在添加来自客户现有网站的常见问题解答以及他们提供的新文档。所以它仍然很轻。

我正在运行一个get_terms() 获取所有FAQ分类ID,然后使用foreach循环它们,并获取每个FAQ类别中的每个FAQ帖子(有重复项,但这是根据客户要求设计的。)

我想这最终会是一个相当大的页面,我的get_terms() 那么多独特的new WP_Query 在foreach内。

根据查询监视器,页面已经在执行17个核心WP查询(akaWP_Query), 但是在0.6到0.9秒内,所以现在还可以。

Now we test with ElasticPress:

我在我的query_args.

$query_args     = array(
    \'ep_integrate\'      => true, //this single line...
    \'post_type\'         => \'prefix_faqs\',
    \'post_status\'       => \'publish\',
    \'posts_per_page\'    => -1,
    \'tax_query\'         => array(
        array(
            \'taxonomy\'      => \'prefix_faq_cat\',
            \'field\'         => \'term_id\',
            \'terms\'         => $faq_term->term_id,
        )
    ),
    \'orderby\'           => \'menu_order\',
    \'order\'             => \'ASC\'
);
$faq_query = new WP_Query( $query_args );
页面加载现在在1.15到1.22秒内完成。所以慢一点。这是因为我正在与另一台服务器通信,所以我想这是一个名义上的延迟。

但有趣的是。。。查询计数从17下降到5。my中的WP查询foreach() 循环不会使服务器负担过重—它们是通过ElasticPress执行的。

到目前为止,它看起来速度较慢,但对服务器的负担较小。当我说“看起来慢”时,我不是指视觉上的。用你的眼睛观察差异是不可察觉的-一切都已加载到位,当你到达常见问题分类部分时,页面已完全加载。

然而,一旦这个页面有了我所期待的大量常见问题,我想应用ElasticPress将同时具有减少服务器负载和减少加载时间的好处。

希望这有帮助。

相关推荐

Get_Search_Query()不能处理带有“与”号的搜索查询

我正在使用简单的代码来创建搜索页面$argscontactdirectory = array( \"s\" => get_search_query(), \'post_type\' => array( \'expertarticle\'), \'orderby\' => \'title\', \'order\' => \'ASC\',