{"id":22941347,"url":"https://github.com/islandora/advanced_search","last_synced_at":"2025-08-12T21:31:52.941Z","repository":{"id":47235267,"uuid":"386383349","full_name":"Islandora/advanced_search","owner":"Islandora","description":"This module creates several blocks to support searching. It also enables the use of Ajax with search blocks, facets, and search results.","archived":false,"fork":false,"pushed_at":"2024-10-28T13:49:31.000Z","size":2152,"stargazers_count":3,"open_issues_count":13,"forks_count":9,"subscribers_count":17,"default_branch":"2.x","last_synced_at":"2024-10-28T17:05:37.158Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.drupal.org/project/advanced_search","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Islandora.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-15T18:08:15.000Z","updated_at":"2024-10-28T13:48:23.000Z","dependencies_parsed_at":"2023-07-27T00:03:24.806Z","dependency_job_id":"379c84bd-ed10-49da-a038-87b86c77e3a8","html_url":"https://github.com/Islandora/advanced_search","commit_stats":null,"previous_names":["islandora/advanced_search"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islandora%2Fadvanced_search","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islandora%2Fadvanced_search/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islandora%2Fadvanced_search/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Islandora%2Fadvanced_search/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Islandora","download_url":"https://codeload.github.com/Islandora/advanced_search/tar.gz/refs/heads/2.x","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":229709343,"owners_count":18111402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-14T13:39:01.828Z","updated_at":"2024-12-14T13:39:02.424Z","avatar_url":"https://github.com/Islandora.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Islandora Advanced Search \u003c!-- omit in toc --\u003e\n\n- [Introduction](#introduction)\n- [Feature and Advantages](#features-and-advantages)\n- [Requirements](#requirements)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Configuring Solr](#configuring-solr)\n- [eDismax Search](#edismax-search)\n- [Configure Collection Search](#configure-collection-search)\n- [Configure Views](#configure-views)\n  - [Exposed Form](#exposed-form)\n  - [Collection Search](#collection-search)\n  - [Paging](#paging)\n  - [Sorting](#sorting)\n  - [Search Highlighting](#search-highlighting)\n  - [Result Summary](#result-summary)\n\u003c!--- - [Configure Facets](#configure-facets)\n  - [Include / Exclude Facets](#include--exclude-facets) ---\u003e\n- [Configure Blocks](#configure-blocks)\n  - [Advanced Search Block](#advanced-search-block)\n  - [Search Block (NEW)](#search-block-new)\n- [Documentation](#documentation)\n- [Troubleshooting/Issues](#troubleshootingissues)\n- [Maintainers](#maintainers)\n- [Sponsors](#sponsors)\n- [Development](#development)\n- [License](#license)\n\n\n## Introduction\nThe Advanced Search module provides keyword search, field search, boolean search, and search within collections and sub collections. It provides a pager UI component that allows the user to set the number of items to show, select sort criteria and display style (grid or list). It provides a global search block, which redirects the search query to a search page. It also enables the use of Ajax with views (powered by Solr), search blocks, facets, and search results.\n\n![image](https://user-images.githubusercontent.com/7862086/216648547-7715951a-4484-4ab5-9b83-5a09e4161342.png)\n\n## Features and Advantages\n\nThe module provides Boolean search, enables you to use AND, OR or NOT options to helps expanding or narrowing your search parameters.\n\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u0026nbsp;\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cstrong\u003eStandard Query Parser\u003c/strong\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cstrong\u003eThe Extended DisMax (eDismax) Query Parser\u0026nbsp;\u003c/strong\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eUse\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eIf\u0026nbsp; Edimax is turned off in configuration, the \u0026ldquo;Standard Query Parser\u0026rdquo; is used.\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eEdismax is enabled by default, but can be turned off in configuration (/admin/config/search/advanced).\u0026nbsp;\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eCapacity\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch a content field\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch a content field\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch across all of the fields which are indexed to Solr in Search API configuration.\u0026nbsp;\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eContent indexed into a string field\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch returns on an exact field match (case sensitive)\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eContent indexed into a full-text field\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch returns on single words or phrases (words in order), and is case insensitive.\u0026nbsp;\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eContent indexed into a string field\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSearch returns on an exact field match (case sensitive)\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eContent indexed into a full-text field\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u0026ldquo;Bounded\u0026rdquo; searches return exact phrase matches, replicating the standard query parser features.\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eCase insensitive\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSupport for word searching in any order.\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSyntax for wildcards and other search features available (described in table below)\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\nUse the following syntaxes (eDismax ONLY) to increase Search acuracy is provided below:\n\n\u003ctable\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cstrong\u003eOperator\u003c/strong\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cstrong\u003eUsage\u003c/strong\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cstrong\u003eExample\u003c/strong\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eAND\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eNarrow down your search to include results that contain both search terms\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eorientation AND games\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eOR\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eBroaden your search to include results that contain either search term\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003estudents OR undergraduates\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eNOT\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eNarrow your search by excluding certain words or phrases\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eorientation NOT games\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eAsterisk (*)\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eReplaces the asterisk with multiple characters. Use to search for multiple beginnings, middles, and endings of words.\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003elibrar*\u0026nbsp;\u003c/span\u003e\u003c/p\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003ewill include results like:\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003elibrar\u003c/span\u003e\u003cstrong\u003ey\u003c/strong\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003elibrar\u003c/span\u003e\u003cstrong\u003eies\u003c/strong\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003elibrar\u003c/span\u003e\u003cstrong\u003eian\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eQuestion Mark (?)\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eReplaces the question mark with a single character. Use to search for multiple beginnings, middles, and endings of words.\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e?est\u003c/span\u003e\u003c/p\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003ewill include results like:\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cstrong\u003eT\u003c/strong\u003e\u003cspan style=\"font-weight: 400;\"\u003eest\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cstrong\u003eP\u003c/strong\u003e\u003cspan style=\"font-weight: 400;\"\u003eest\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cstrong\u003eW\u003c/strong\u003e\u003cspan style=\"font-weight: 400;\"\u003eest\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eWill not include:\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eCont\u003c/strong\u003e\u003cspan style=\"font-weight: 400;\"\u003eest\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eTilde (~)\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eUse to make your search \u0026lsquo;fuzzy\u0026rsquo; or search for synonyms and alternate spellings.\u0026nbsp;\u003c/span\u003e\u003c/p\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eOnly works for Keyword search.\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eShaun~\u003c/span\u003e\u003c/p\u003e\n\u003cbr /\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003ewill include results like:\u003c/span\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eShaun\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eSean\u003c/span\u003e\u003c/li\u003e\n\u003cli style=\"font-weight: 400;\"\u003e\u003cspan style=\"font-weight: 400;\"\u003eShawn\u003c/span\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eQuotation Marks (\u0026ldquo;\u0026rdquo;)\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003eUse quotation marks to search for a specific word or phrase.\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003ctd\u003e\n\u003cp\u003e\u003cspan style=\"font-weight: 400;\"\u003e\u0026ldquo;alumni golf tournament\u0026rdquo;\u003c/span\u003e\u003c/p\u003e\n\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003e\u0026nbsp;\u003c/p\u003e\n\n\n## Requirements\n\nAdvanced Search requires an installation of Solr, as its syntax is Solr-specific.\nThe Advanced Search blocks also utilize the Facets API, therefore they only work on Views where Facets are enabled.\n\nThe following requirements (Drupal modules) will be downloaded automatically by Composer:\n\n- [facets](https://www.drupal.org/project/facets)\n- [search_api_solr](https://www.drupal.org/project/search_api_solr)\n\nYou do not need to use Islandora, however the instructions below for setting up search within a collection \n(and optionally, its subcollections) use an pattern that is used by Islandora whereby nodes are organized \nin a hierarchy using an Entity Reference field (typically called \"Member Of\" / `field_member_of`) on a node\nthat accepts other nodes as values. If you are using Advanced Search and want to make use\nof \"Search Sub-collections\" then you will need to set up such a field on your content type(s).\n\n## Installation\n\nThis module is part of the [Islandora Starter Site](https://github.com/Islandora-Devops/islandora-starter-site), which is a full Drupal site setup that includes\nSolr, and automatically sets up the views and facets required for Advanced Search to work. \n\nTo download and enable just this module, use the following from the command line:\n\n```bash\ncomposer require drupal/advanced_search\ndrush en advanced_search\n```\n\n## Configuration\n\nThis module will make the following blocks available for every _display_\nof a Search API view:\n* Advanced Search Block\n* Pager Block\n\nThis module also provides a block called \"Search\" that you can place and configure as a global search block.\n\nYou can configure these blocks to show up on pages with their respective views using Drupal's Block interface. \n\nYou can set the following configuration at\n`/admin/config/search/advanced`:\n\n![Config screen, showing sections for Advanced Search Block, Pager Block, Advanced Search, and Facets](https://github.com/Islandora/advanced_search/assets/1943338/004c7932-6918-4036-8bfd-b9bf27b88f6f)\n\n\n## Configuring Solr\n\nPlease review\n[Islandora Documentation](https://islandora.github.io/documentation/user-documentation/searching/)\nbefore continuing. The following assumes you already have a working Solr and the\nDrupal Search API setup.\n\n## Extended Dismax (eDismax) Search\n\nRead the [Drupal.org documentation on Solr Query Parsers](https://www.drupal.org/docs/contributed-modules/search-api-solr/solr-query-parsers) to find more detail about\neDismax Search in Drupal.\n\nYou can enable Extended Dismax search on this module's configuration page at\n`admin/config/islandora/advanced_search`. This will affect all Advanced Search\nand Search blocks provided by this module.\n\n## Configure Search Fields for Collection Search\n\nSee \"Requirements\" for a discussion of the use of `field_member_of`.\n\nIn this section we set up fields in our Solr index (using Search API).\nThe first Search API field (\"Member of\") indexes a node's parent(s) based\non the Drupal field `field_member_of`, and the second (\"Descendant of\")\nindexes a node's parents and its parents' parents. This second field's \nrecursive behaviour is achieved by using Search API's \"Index hierarchy\" \nprocessor.\n\nFirst ensure that your hierarchy field (assumed for convenience to be `field_member_of`)\nis indexed at `admin/config/search/search-api/index/[your default index]/fields`. If\nnot, add the field using the \"Add field\" button. When you find \"Member of (field_member_of)\",\nclick the \"Add\" button - do not delve into the child properties under \"(+)\". \nWe will assume that the Search API field's name is also \"Member of\". The field type\nshould be \"Integer\".\n\nNext, create a second Search API field, exactly the same as the first field \nexcept for its name, so we can tell them apart. We'll call this one \"Descendant of\". \n\n![Search fields Member of and Descendant of set up](./docs/field_descendant_of.png)\n\nThen, under the Processors tab (`admin/config/search/search-api/index/[your default index]/processors`)\nenable the checkbox for `Index hierarchy` and at the bottom of the page, setup the processor\nto index hierarchy for \"Descendant of\" (but not \"Member of\").\n\n![\"Index hierarchy\" checkbox selected](./docs/enable_index_hierarchy.png)\n\n![\"Decendant of\" selected under Index Hierarchy processor settings.](./docs/enable_index_hierarchy_processor.png)\n\n\nThis \"Descendant of\" field now contains a list of all its ancestors, so can\nbe used as a contextual filter on views, thereby allowing the view to display all \ndescendants of a given node. \n\nSee the section below, \"Collection search\", to finish configuring your site\nfor collection and sub-collection search.\n\n\u003e N.B. You may have to re-index to make sure the field is populated.\n\n## Configure Views\n\nDetailed instruction on the configuration of views is outside of the scope of this document.\nPlease read the [Drupal Documentation](https://www.drupal.org/docs/8/core/modules/views), as\nwell as the\n[Search API Documentation](https://www.drupal.org/docs/contributed-modules/search-api).\n\nTo use the Advanced Search module, you will need to create at least one view that\nis based on Search API and uses Solr. However, do NOT add the \"Fulltext search\"\nfilter, despite that being the \"usual\" way of setting up a Search view. All \nfulltext searching (and fielded searching) will be handled by blocks provided \nby this module.\n\n### Exposed Form\n\nSolr views allow the user to configure an exposed form (_optionally as a\nblock_). This form / block is **different** from the\n[Advanced Search Block](#advanced-search-block). This module does not make any\nchanges to the form, but this form can cause the Advanced Search Block to not\nfunction if configured incorrectly.\n\nThe Advanced Search Block requires that if present the Exposed forms\n`Exposed form style` is set to `Basic` rather than `Input Required`. As\n`Input Required` will prevent any search from occurring unless the user puts an\nadditional query in the Exposed form as well.\n\n![Exposed Form set to Basic.](./docs/basic-exposed-form.png)\n\n### Collection Search\n\nThis module's \"Advanced Search\" block can be set up on a \n\"collection\" (or, generically, on hierarchical entities\nthat can contain other entities). This block allows the user\nto select whether they want the search to include sub-collections.\n\n![\"Include Sub-collections\" checkbox in the Advanced Search Block.](./docs/include_subcollections.png)\n\nThe following instructions describe how to set up this feature.\n\nFirst, in your Search API view, set up **two** contextual filters:\n\n1. \"Member of\" (Direct descendants only)\n2. \"Descendant of\" (All descendants)\n\n\n![Views config showing two contextual filters.](./docs/view_advanced_setting.png)\n\nBoth of these filters are configured the exact same way. The only configuration\nto set is \"When the filter value is NOT available\" then \"Provide default value\". \nUnder Type, select \"Content ID from URL\".\n\n![Contextual filter showing \"Content ID from URL\" selected.](./docs/contextual_filter_settings.png)\n\nThese two contextual filters are used by the Advanced Search block to\nexpose the toggle to search direct descendants or all descendants\n(documented under \"Advanced Search Block\", below).\n\n### Paging\n\nThe paging options specified here can have an affect on the pager block\n(*documented below*).\n\n![image](./docs/pager_settings.png)\n\n### Sorting\n\nAdditional the fields listed as `Sort Criteria` as `Exposed` will be made\navailable in the pager block (*documented below*).\n\n![image](./docs/sort_criteria.png)\n\n### Search Highlighting\n\n1. Add Search Excerpt to the Advanced Search View.\n    - Navigate to `/admin/structure/views/view/advanced_search`. In the `Fields` section, click `Add`, then select `Search Excerpt`.'\n    \n    ![image](https://user-images.githubusercontent.com/106131209/225054405-122b2d9d-1aec-4ac9-9e72-8a99a679f8e6.png)\n    \n2. Turn on Search API highlight processor\n    - Navigate to `/admin/config/search/search-api` \u003e Edit Index \u003e Processors \u003e Enable Highlight processor. \n    \n    ![image](https://user-images.githubusercontent.com/106131209/225055386-8c2d279c-e4c6-4123-8e89-f139ac4862d9.png)\n    \n    - At the bottom of the form, under Processor Settings \u003e Highlight \u003e Select `Create excerpt`.\n    \n    ![image](https://user-images.githubusercontent.com/106131209/225055763-33e9c122-e2aa-452e-9158-ebf24076f0f8.png)\n    \n3. Configure Solr Server.\n    - Navigate to `/admin/config/search/search-api` \u003e Edit Server \u003e Configure Solr backend \u003e Advanced \u003e Select `Retrieve highlighted snippets`.\n    \n    ![image](https://user-images.githubusercontent.com/106131209/225057771-c42c5751-c63f-4170-9b48-d443f02b7d8f.png)\n\n### Result Summary\n\nIn your view, in the `Header` section, clikc `Add`, then search and select for \"Result summary\".\n\n![image](https://user-images.githubusercontent.com/7862086/222479508-7fd97c65-11d5-496d-8e5a-9e019c82f097.png)\n\nThen, paste the following code to `Display` textarea in `Configure Header: Global: Result summary`\n\n````\n\u003cdiv id=\"ajax-page-summary\" class=\"pager__summary\"\u003eDisplaying @start - @end of @total\u003c/div\u003e\n````\n\n![image](https://user-images.githubusercontent.com/7862086/222480250-ddedb959-1c0b-4558-8f9f-f1d2ec1107ec.png)\n\n\n\n\u003c!--- ## Configure Facets\n\nThe facets can be configured at `admin/config/search/facets`. Facets are linked\nto a **Source** which is a **Search API View Display** so it will be typically\nto have to duplicate your configuration for a given facet across each of the\ndisplays where you want it to show up.\n\n### Include / Exclude Facets\n\nTo be able to display exclude facet links as well as include links in the facets\nblock we have to duplicate the configuration for the facet like so.\n\n![image](./docs/include_exclude_facets.png)\n\nBoth the include / exclude facets must use the widget\n`List of links that allow the user to include / exclude facets`\n\n![image](./docs/include_exclude_facets_settings.png)\n\nThe excluded facet also needs the following settings to appear and function\ncorrectly.\n\nThe `URL alias` must match the same value as the include facet except it must be\nprefixed with `~` character that is what links to the two facets to each other.\n\n![image](./docs/exclude_facet_settings_url_alias.png)\n\nAnd it must also explicitly be set to exclude:\n\n![image](./docs/exclude_facet_settings_exclude.png)\n\nYou may also want to enable `Hide active items` and `Hide non-narrowing results`\nfor a cleaner presentation of facets.\n---\u003e\n## Configure Blocks\n\nFor each block type:\n\n- Facet\n- Pager\n- Advanced Search\n\nThere will be **one block** per `View Display`. The block should be limited to\nonly appear when the view it was derived from is also being displayed on the\nsame page.\n\nThis requires configuring the `visibility` of the block as appropriate. For\ncollection based searches be sure to limit the display of the Facets block to\nthe models you want to display the search on, e.g:\n\n![image](./docs/facet_block_settings.png)\n\n### Advanced Search Block\n\nFor any valid Search API field, you can drag / drop and reorder the fields to\ndisplay in the advanced search form on. The configuration resides on the block\nso this can differ across views / displays if need be. \n\nIf the view this block is attached to has *two* exposed filters, then you can \nchoose which one corresponds to direct descendants. This will enable the \n\"Include Sub-Collections\" search checkbox on the Advanced Search block.\n\n![image](./docs/advanced_search_block_settings.png)\n\n\u003e N.B. Be aware that the Search views [Exposed Form](#exposed-form) can have an\n\u003e affect on the function of the\n\u003e [Advanced Search Block](#advanced-search-block). Please refer to that section\n\u003e to learn more.\n\n### Search Block (NEW)\n\nTo associate this simple search block to a Advanced Search Result Page view,\nyou can select its machine name in the dropdown list. With that, this form\nwill redirect to the view with search parameters.\n\nYou can also change the search form's appearance by changing the default label,\nplaceholder text for the search text field, and search button.\n\n![image](./docs/simple_search_settings.png)\n\n## Documentation\n\nFurther documentation for this module is available on the\n[Islandora 8 documentation site](https://islandora.github.io/documentation/).\n\n## Troubleshooting/Issues\n\nHaving problems or solved a problem? Check out the Islandora google groups for\na solution.\n\n- [Islandora Group](https://groups.google.com/forum/?hl=en\u0026fromgroups#!forum/islandora)\n- [Islandora Dev Group](https://groups.google.com/forum/?hl=en\u0026fromgroups#!forum/islandora-dev)\n\n## Maintainers\n\nCurrent maintainers:\n\n- [Nigel Banks](https://github.com/nigelgbanks)\n\n## Sponsors\n\n- LYRASIS\n\n## Development\n\nIf you would like to contribute, please get involved by attending our weekly\n[Tech Call](https://github.com/Islandora/documentation/wiki). We love to hear\nfrom you!\n\nIf you would like to contribute code to the project, you need to be covered by\nan Islandora Foundation\n[Contributor License Agreement](http://islandora.ca/sites/default/files/islandora_cla.pdf)\nor\n[Corporate Contributor License Agreement](http://islandora.ca/sites/default/files/islandora_ccla.pdf).\nPlease see the [Contributors](http://islandora.ca/resources/contributors) pages\non Islandora.ca for more information.\n\nWe recommend using the\n[islandora-playbook](https://github.com/Islandora-Devops/islandora-playbook) to\nget started.\n\n## License\n\n[GPLv2](http://www.gnu.org/licenses/gpl-2.0.txt)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislandora%2Fadvanced_search","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fislandora%2Fadvanced_search","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fislandora%2Fadvanced_search/lists"}