PHPackages                             digitalutsc/ajax\_solr\_search - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Search &amp; Filtering](/categories/search)
4. /
5. digitalutsc/ajax\_solr\_search

AbandonedArchivedDrupal-module[Search &amp; Filtering](/categories/search)

digitalutsc/ajax\_solr\_search
==============================

Drupal 8/9 module provide a user interface for the Federated Search functionality among all of Drupal sites which index content to one shared Solr core

1.0.x-dev(3y ago)06032[3 issues](https://github.com/digitalutsc/ajax_solr_search/issues)Apache-2.0JavaScript

Since Feb 23Pushed 3y ago1 watchersCompare

[ Source](https://github.com/digitalutsc/ajax_solr_search)[ Packagist](https://packagist.org/packages/digitalutsc/ajax_solr_search)[ Docs](https://www.drupal.org/project/ajax_solr_search)[ RSS](/packages/digitalutsc-ajax-solr-search/feed)WikiDiscussions 1.0.x Synced 3d ago

READMEChangelogDependencies (4)Versions (1)Used By (0)

Ajax Solr for Drupal
====================

[](#ajax-solr-for-drupal)

Introduction
------------

[](#introduction)

Drupal 8/9 module provides a user interface for the Federated Search for multiple Drupal sites which index their content into a single shared Solr Core.

Based project:
--------------

[](#based-project)

- [Ajax Solr](https://github.com/evolvingweb/ajax-solr) is the JavaScript library which provide web based user interface to Apache Solr. The module integrates the library into Drupal framework.

Federated Search
----------------

[](#federated-search)

At Digital Scholarship Unit - UTSC Library, we have developed this module to support search and retrieval using a core that is shared by multiple individual Drupal sites. This allows us to have a federated search across Drupal sites where an end user can conduct a search and see relevant results from multiple sites. [![Federated Search](https://github.com/digitalutsc/islandora_lite_docs/raw/main/Islandora%20Lite%20Solr%20Setup.svg "Federated Search")](https://github.com/digitalutsc/islandora_lite_docs/raw/main/Islandora%20Lite%20Solr%20Setup.svg)

Requirements
------------

[](#requirements)

- A Solr endpoint
- A shared Solr core which multisite sites indexing their contents into.
- [Ajax Solr library](https://github.com/digitalutsc/ajax-solr) as dependency library.
- At `/admin/config/search/search-api/index/YOUR_SOLR_INDEX/fields` in each of exhibit sites, setup with Search API fields with the same `MACHINE NAME` and `TYPE`. For example:

FieldMachine NameTypeIn SolrThumbnailthumbnailStringss\_thumbnailTitletitleFulltexttm\_titleDescriptiondescriptionFulltexttm\_descriptionURI (search\_api\_url)urlStringsm\_urlOther optional fields to add............Installation and configuration
------------------------------

[](#installation-and-configuration)

- By Composer: `composer require digitalutsc/ajax_solr_search`
- **OR** git clone this module to your *modules* directory (ie. *web/modules/contrib*) of your Drupal site:
    - `git clone https://github.com/digitalutsc/drupal_ajax_solr_search.git`
- Clone the dependency [Ajax Solr library](https://github.com/digitalutsc/ajax-solr) to Libraries directory (ie. drupal/web/libraries):
    - `git clone https://github.com/digitalutsc/ajax-solr.git`
- Enable the module.
- Visit `/admin/config/search/ajax_solr`, setting up with:
    - The URL for Search Results Page, default is `/federated-search`.
    - Select Solr field(s) to search against.
    - Select Solr field(s) for Facets.
    - Select Solr field for Year Range filter.
    - Select Solr field(s) for Sort Criteria.
        - When sorting ascending on a field, results without the field are displayed first. This can be configured by adding `sortMissingLast=true` to the field in the Solr schema. This property is false by default.
        - Note that sorting on Solr `string` fields is **case-sensitive**. Case-insensitive sorting can be done by modifying the Solr schema.
        - Sorting on multivalued fields is not supported.
    - Select 4 mandatory Solr fields for Search Result rows: Thumbnail, title, description, and URL. Other options field can also be added.

[![Config Screenshot!](docs/ajax_solr_config.png "Config Screenshot")](docs/ajax_solr_config.png)

**Year Range and Sort Criteria Configuration**

[![Additional Config Screenshot!](docs/ajax_solr_additional_config.png "Additional Config Screenshot")](docs/ajax_solr_additional_config.png)

Usage
-----

[](#usage)

- Visit the search page at `/federated-search`.
- Live demo:

Please note:
------------

[](#please-note)

This module won't work if its Drupal site and Solr Endpoint don't have the same Hypertext Transfer Protocol (HTTP). It means that both of Drupal site and Solr endpoint must be either in `https://` or `http://`.

Maintainers
-----------

[](#maintainers)

- [Kyle Huynh](https://github.com/kylehuynh205)

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity29

Early-stage or recently created project

 Bus Factor1

Top contributor holds 70.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1175d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/93b3333590627ade267a7c2f1d7ccf7fa8c542838d5ea75845e5d77d3e0d7b7e?d=identicon)[kylehuynh](/maintainers/kylehuynh)

---

Top Contributors

[![kylehuynh205](https://avatars.githubusercontent.com/u/7862086?v=4)](https://github.com/kylehuynh205 "kylehuynh205 (68 commits)")[![amym-li](https://avatars.githubusercontent.com/u/106131209?v=4)](https://github.com/amym-li "amym-li (28 commits)")

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/digitalutsc-ajax-solr-search/health.svg)

```
[![Health](https://phpackages.com/badges/digitalutsc-ajax-solr-search/health.svg)](https://phpackages.com/packages/digitalutsc-ajax-solr-search)
```

###  Alternatives

[ruflin/elastica

Elasticsearch Client

2.3k50.4M203](/packages/ruflin-elastica)[opensearch-project/opensearch-php

PHP Client for OpenSearch

15024.3M65](/packages/opensearch-project-opensearch-php)[mailerlite/laravel-elasticsearch

An easy way to use the official PHP ElasticSearch client in your Laravel applications.

934529.3k2](/packages/mailerlite-laravel-elasticsearch)[massive/search-bundle

Massive Search Bundle

721.4M13](/packages/massive-search-bundle)[outl1ne/nova-multiselect-filter

Multiselect filter for Laravel Nova.

45802.7k3](/packages/outl1ne-nova-multiselect-filter)[handcraftedinthealps/zendsearch

a general purpose text search engine written entirely in PHP 5

39921.0k35](/packages/handcraftedinthealps-zendsearch)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
