[{"data":1,"prerenderedAt":359},["ShallowReactive",2],{"navigation_docs":3,"-advanced-topics-searches":221,"-advanced-topics-searches-surround":354},[4,27,77,123,157,207],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":26},"Get started","majesticons:rocket-3-start-line","\u002Fget-started","1.get-started",[10,14,18,22],{"title":11,"path":12,"stem":13},"How it works","\u002Fget-started\u002Fhow-it-works","1.get-started\u002F10.how-it-works",{"title":15,"path":16,"stem":17},"Play online","\u002Fget-started\u002Fplay-online","1.get-started\u002F20.play-online",{"title":19,"path":20,"stem":21},"Create a new project","\u002Fget-started\u002Fcreate-new-project","1.get-started\u002F30.create-new-project",{"title":23,"path":24,"stem":25},"First steps","\u002Fget-started\u002Ffirst-steps","1.get-started\u002F40.first-steps",false,{"title":28,"icon":29,"path":30,"stem":31,"children":32,"page":26},"Guide","mdi:book-open-page-variant-outline","\u002Fguide","2.guide",[33,37,41,45,49,53,57,61,65,69,73],{"title":34,"path":35,"stem":36},"Customized API Output","\u002Fguide\u002Fcustomized-api-output","2.guide\u002F05.customized-api-output",{"title":38,"path":39,"stem":40},"Pages & Routing","\u002Fguide\u002Fpages-routing","2.guide\u002F10.pages-routing",{"title":42,"path":43,"stem":44},"Site layout & Menus","\u002Fguide\u002Fsite-layout-menus","2.guide\u002F20.site-layout-menus",{"title":46,"path":47,"stem":48},"Authentication","\u002Fguide\u002Fauthentication","2.guide\u002F40.authentication",{"title":50,"path":51,"stem":52},"Metatags & Local tasks","\u002Fguide\u002Fmetatags-local-tasks","2.guide\u002F50.metatags-local-tasks",{"title":54,"path":55,"stem":56},"Breadcrumbs & Messages","\u002Fguide\u002Fbreadcrumbs-messages","2.guide\u002F60.breadcrumbs-messages",{"title":58,"path":59,"stem":60},"Redirects","\u002Fguide\u002Fredirects","2.guide\u002F65.redirects",{"title":62,"path":63,"stem":64},"Editorial previews","\u002Fguide\u002Feditorial-previews","2.guide\u002F70.editorial-previews",{"title":66,"path":67,"stem":68},"Layout builder","\u002Fguide\u002Flayout-builder","2.guide\u002F80.layout-builder",{"title":70,"path":71,"stem":72},"Drupal Canvas","\u002Fguide\u002Fcanvas","2.guide\u002F90.canvas",{"title":74,"path":75,"stem":76},"Drupal CMS","\u002Fguide\u002Fdrupal-cms","2.guide\u002F95.drupal-cms",{"title":78,"icon":79,"path":80,"stem":81,"children":82,"page":26},"Advanced topics","bi:diagram-3","\u002Fadvanced-topics","3.advanced-topics",[83,87,91,95,99,103,107,111,115,119],{"title":84,"path":85,"stem":86},"Multi-frontend","\u002Fadvanced-topics\u002Fmulti-frontend","3.advanced-topics\u002F05.multi-frontend",{"title":88,"path":89,"stem":90},"Listings, Views","\u002Fadvanced-topics\u002Flistings-views","3.advanced-topics\u002F10.listings-views",{"title":92,"path":93,"stem":94},"Searches","\u002Fadvanced-topics\u002Fsearches","3.advanced-topics\u002F20.searches",{"title":96,"path":97,"stem":98},"JSON-API & GraphQL","\u002Fadvanced-topics\u002Fjsonapi-graphql","3.advanced-topics\u002F30.jsonapi-graphql",{"title":100,"path":101,"stem":102},"Caching","\u002Fadvanced-topics\u002Fcaching","3.advanced-topics\u002F40.caching",{"title":104,"path":105,"stem":106},"Error pages","\u002Fadvanced-topics\u002Ferror-pages","3.advanced-topics\u002F50.error-pages",{"title":108,"path":109,"stem":110},"Drupal forms","\u002Fadvanced-topics\u002Fdrupal-forms","3.advanced-topics\u002F60.drupal-forms",{"title":112,"path":113,"stem":114},"Site Templates","\u002Fadvanced-topics\u002Fsite-templates","3.advanced-topics\u002F65.site-templates",{"title":116,"path":117,"stem":118},"Block layout","\u002Fadvanced-topics\u002Fblock-layout","3.advanced-topics\u002F70.block-layout",{"title":120,"path":121,"stem":122},"Debugging API requests","\u002Fadvanced-topics\u002Fdebugging","3.advanced-topics\u002F80.debugging",{"title":124,"icon":125,"path":126,"stem":127,"children":128,"page":26},"Drupal","simple-icons:drupal","\u002Fdrupal","4.drupal",[129,133,137,141,145,149,153],{"title":130,"path":131,"stem":132},"Key modules","\u002Fdrupal\u002Fkey-modules","4.drupal\u002F10.key-modules",{"title":134,"path":135,"stem":136},"Custom elements","\u002Fdrupal\u002Fcustom-elements","4.drupal\u002F20.custom-elements",{"title":138,"path":139,"stem":140},"Routes","\u002Fdrupal\u002Froutes","4.drupal\u002F30.routes",{"title":142,"path":143,"stem":144},"Providing blocks","\u002Fdrupal\u002Fproviding-blocks","4.drupal\u002F40.providing-blocks",{"title":146,"path":147,"stem":148},"Custom Element Processors","\u002Fdrupal\u002Fcustom-element-processors","4.drupal\u002F50.custom-element-processors",{"title":150,"path":151,"stem":152},"Adding Drupal forms","\u002Fdrupal\u002Fadd-drupal-forms","4.drupal\u002F60.add-drupal-forms",{"title":154,"path":155,"stem":156},"Providing themes","\u002Fdrupal\u002Fthemes","4.drupal\u002F70.themes",{"title":158,"icon":159,"path":160,"stem":161,"children":162,"page":26},"Nuxt","simple-icons:nuxtdotjs","\u002Fnuxt","5.nuxt",[163,167,171,175,179,183,187,191,195,199,203],{"title":164,"path":165,"stem":166},"Introduction","\u002Fnuxt\u002Fintroduction","5.nuxt\u002F10.introduction",{"title":168,"path":169,"stem":170},"Setup","\u002Fnuxt\u002Fsetup","5.nuxt\u002F20.setup",{"title":172,"path":173,"stem":174},"Rendering Custom Elements","\u002Fnuxt\u002Frender-custom-elements","5.nuxt\u002F30.render-custom-elements",{"title":176,"path":177,"stem":178},"Default components","\u002Fnuxt\u002Fdefault-components","5.nuxt\u002F32.default-components",{"title":180,"path":181,"stem":182},"Composables","\u002Fnuxt\u002Fcomposables","5.nuxt\u002F35.composables",{"title":184,"path":185,"stem":186},"Custom Routes","\u002Fnuxt\u002Fcustom-routes","5.nuxt\u002F40.custom-routes",{"title":188,"path":189,"stem":190},"Page Layouts","\u002Fnuxt\u002Fpage-layouts","5.nuxt\u002F50.page-layouts",{"title":192,"path":193,"stem":194},"Component Previews","\u002Fnuxt\u002Fcomponent-previews","5.nuxt\u002F55.component-previews",{"title":196,"path":197,"stem":198},"Rendering modes","\u002Fnuxt\u002Frendering-modes","5.nuxt\u002F60.rendering-modes",{"title":200,"path":201,"stem":202},"Deployment options","\u002Fnuxt\u002Fdeployment","5.nuxt\u002F70.deployment",{"title":204,"path":205,"stem":206},"Resources","\u002Fnuxt\u002Fresources","5.nuxt\u002F90.resources",{"title":208,"icon":209,"path":210,"stem":211,"children":212,"page":26},"Deployment","solar:server-square-cloud-linear","\u002Fdeployment","6.deployment",[213,217],{"title":214,"path":215,"stem":216},"Deployment Strategies","\u002Fdeployment\u002Fdeployment-strategy","6.deployment\u002F10.deployment-strategy",{"title":218,"path":219,"stem":220},"Unified Hosting","\u002Fdeployment\u002Funified-hosting","6.deployment\u002F20.unified-hosting",{"id":222,"title":92,"body":223,"description":339,"extension":348,"links":349,"meta":350,"navigation":351,"path":93,"seo":352,"stem":94,"__hash__":353},"docs\u002F3.advanced-topics\u002F20.searches.md",{"type":224,"value":225,"toc":338},"minimark",[226,231,235,239,249,295,304,309,318,331,335],[227,228,230],"h2",{"id":229},"searches-with-views","Searches with Views",[232,233,234],"p",{},"Basic searches based upon simple SQL-queries can be built easily with the\nhelp of the Drupal Views module. Create a regular View and add one or more\nexposed filters, for example a fulltext filter. The frontend needs to build\na custom form for the search input and send the search input data as request\nquery parameters to the view.",[227,236,238],{"id":237},"search-api","Search API",[232,240,241,242,248],{},"The Drupal extension module ",[243,244,238],"a",{"href":245,"rel":246},"https:\u002F\u002Fdrupal.org\u002Fproject\u002Fsearch_api",[247],"nofollow"," constitutes a powerful framework for building searches. While out-of-the-box it comes with a database backend, there are many modules providing support for powerful Search solutions available, for example:",[250,251,252,260,267,274,281,288],"ul",{},[253,254,255],"li",{},[243,256,259],{"href":257,"rel":258},"https:\u002F\u002Fdrupal.org\u002Fproject\u002Fsearch_api_solr",[247],"Solr",[253,261,262],{},[243,263,266],{"href":264,"rel":265},"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Felasticsearch_connector",[247],"Elasticsearch",[253,268,269],{},[243,270,273],{"href":271,"rel":272},"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fsearch_api_opensearch",[247],"OpenSearch",[253,275,276],{},[243,277,280],{"href":278,"rel":279},"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fsearch_api_typesense",[247],"Typesense",[253,282,283],{},[243,284,287],{"href":285,"rel":286},"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fsearch_api_meilisearch",[247],"Meilisearch",[253,289,290],{},[243,291,294],{"href":292,"rel":293},"https:\u002F\u002Fwww.drupal.org\u002Fproject\u002Fsearch_api_algolia",[247],"Algolia",[232,296,297,298,303],{},"The Search API module provides configuration for the content to be indexed, including configuration for the indexed data (and its processing) on a per-field basis. The content gets indexed whenever it is changed, either instantly or delayed via Drupal's cron service (as configured). For more details, please refer to the ",[243,299,302],{"href":300,"rel":301},"https:\u002F\u002Fwww.drupal.org\u002Fdocs\u002Fcontributed-modules\u002Fsearch-api",[247],"Search API documentation",".",[305,306,308],"h3",{"id":307},"search-api-views","Search API + Views",[232,310,311,312,317],{},"For building the actual Search page, again the Views module maybe be leveraged, by building a View with the Search API as query backend. Please refer to the ",[243,313,316],{"href":314,"rel":315},"https:\u002F\u002Fwww.drupal.org\u002Fdocs\u002F8\u002Fmodules\u002Fsearch-api\u002Fgetting-started\u002Fsearch-forms-and-results-pages\u002Fsearching-with-views\u002Fcreating-a-search-view",[247],"module documentation"," for details on how to setup such a View. This might be a good option for simple searches.",[232,319,320,321,325,326,330],{},"Search index view could be configured to have a ",[322,323,324],"code",{},"Custom Elements Page","\ndisplay and with that configuration a custom elements search endpoint is\navailable. (see ",[243,327,329],{"href":328},"listings-views#status","Lupus Decoupled Views",")",[305,332,334],{"id":333},"search-api-custom-queries","Search API + Custom queries",[232,336,337],{},"A powerful alternative for building ambitious searches is to leverage the Search API module to index data to the search server and to have the frontend query the search server directly. That way, the frontend stays in control of the query and may make use of advanced search-server specific features in order to build a great, ambitious search experience!",{"title":339,"searchDepth":340,"depth":340,"links":341},"",2,[342,343],{"id":229,"depth":340,"text":230},{"id":237,"depth":340,"text":238,"children":344},[345,347],{"id":307,"depth":346,"text":308},3,{"id":333,"depth":346,"text":334},"md",null,{},true,{"title":92,"description":339},"3ykUlmiJN20_9I2y2oVZPiGdhtlVxEE-o3h4uxeJnd0",[355,357],{"title":88,"path":89,"stem":90,"description":356,"children":-1},"The Lupus Decoupled Views\nsubmodule provides support for Drupal's Views module. The Views module is Drupal's native way and very powerful way of creating listings of content. It provides a UI for configuring complex queries, searches and the rendering of results, including paging.",{"title":96,"path":97,"stem":98,"description":358,"children":-1},"When data needs to be queried or updated from the frontend, Drupal offers plenty of options. Lupus Decoupled Drupal's provided API may be combined with any of these:",1776084716275]