Help Needed with Elastic Search Integration for Multiple Wordpress sites Search

Hello folks,

We have a requirement to integrate Elastic Search with our 15 Wordpress sites, and we're hoping someone can guide us on the best practices to achieve this.

Our client would like to index the content of these 15 sites and display the search results on the 16th site (main site). For example, if a user goes to the main site and searches with a query like "men's health," the search results should display any posts related to men's health, as well as posts from the other sites if available.

To accomplish this, I am considering setting up Elastic Search on our server and installing the ElasticPress Wordpress plugin on each individual site to index the content. This way, all the data will be available on Elastic Search to display the search results.

All our Wordpress sites are individual installs and are hosted on the same server.

I would like to know if the approach mentioned above will work, or if there is a better way to achieve the desired outcome. If anyone has experience with a similar setup, I would greatly appreciate any drawbacks and references that could be helpful.

Thank you for your assistance.

This category relates to the Enterprise Search set of products - App Search, Site Search and Workplace Search.
If your question relates to core Elasticsearch functionality, please head over to the Elasticsearch category for assistance.

Hi @sdadi,

The plugin certainly looks useful. However, there do appear to be some technical limitations. The first that I noticed is that they only support up to Elasticsearch v7.10. The latest minor version is v8.13. I don't know if the plugin developer is planning on providing v8 support. So I would encourage you to look at the differences between v7 and v8 and be sure that you are absolutely comfortable being on the older version.

Also, I can't see from their documentation if they allow aggregating data from multiple sites to search from yet another site. So I can't say for certain if the plugin will work for your usecase.

If you want to use an entirely Elasticsearch approach, you could use the Elastic web crawler to crawl the 15 wordpress sites, and then use the PHP client (or another client; I assume PHP because wordpress) to perform search queries from the 16th site. This would require a bit of technical set up, though.

The web crawler can be configured to crawl multiple domains, which will put all 15 site content onto a single index for easy search.
Alternatively, if you want separation of data, you can create 15 individual crawlers (one for each site) and perform cross index searches from the 16th site.