How can PHP be integrated with tools like ElasticSearch or Solr for more efficient filtering and faceted search functionality?

To integrate PHP with tools like ElasticSearch or Solr for efficient filtering and faceted search functionality, you can use PHP libraries such as Elastica for ElasticSearch or Solarium for Solr. These libraries provide easy-to-use interfaces to interact with the search engines and perform various operations like querying, filtering, and faceting.

// Example code using Elastica library for ElasticSearch
require 'vendor/autoload.php';

$client = new \Elastica\Client();
$search = new \Elastica\Search($client);

$query = new \Elastica\Query();
$boolQuery = new \Elastica\Query\BoolQuery();

$termFilter = new \Elastica\Query\Term(['category' => 'books']);
$boolQuery->addFilter($termFilter);

$facet = new \Elastica\Facet\Terms('categories');
$facet->setField('category');
$facet->setSize(10);

$query->setQuery($boolQuery);
$query->addFacet($facet);

$resultSet = $search->search($query);

// Process the search results and facets