> For the complete documentation index, see [llms.txt](https://docs.opencityitalia.it/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.opencityitalia.it/sito-web/la-piattaforma/il-motore-di-ricerca.md).

# Il motore di ricerca

La pagina descrive la ricerca del sito, i filtri disponibili e la visibilità dei contenuti.

Per effettuare una ricerca sul sito web, il cittadino inserisce una o più parole nel campo di ricerca.&#x20;

<figure><img src="https://3823931934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfYDGLbEkTaK5gywjDOEN%2Fuploads%2FrpXpkpqTp13eQhYUua6J%2Fimage.png?alt=media&amp;token=df9c0d0d-9653-4fbb-a63c-6926cd091507" alt=""><figcaption></figcaption></figure>

Il sito mostra i contenuti pubblicati più pertinenti e consente di individuare più facilmente le informazioni disponibili.

<figure><img src="https://3823931934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfYDGLbEkTaK5gywjDOEN%2Fuploads%2FGKCHYw9jhEpbfhbyFzyW%2Fimage.png?alt=media&amp;token=33c34e3f-4b3b-4707-b59c-313203cd60b3" alt=""><figcaption></figcaption></figure>

Dopo aver eseguito una ricerca, il cittadino può restringere i risultati usando i filtri disponibili:

* **Sezioni**;
* **Argomenti**.

<figure><img src="https://3823931934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfYDGLbEkTaK5gywjDOEN%2Fuploads%2FJSXvST765hOVPQrMsBj3%2Fimage.png?alt=media&amp;token=495a21da-4ab5-4e35-a91f-b70a3dc96dcb" alt=""><figcaption></figcaption></figure>

Il cittadino può anche ordinare i risultati della ricerca per:

* rilevanza;
* data di pubblicazione;
* tipologia di contenuto;
* nome.

<figure><img src="https://3823931934-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FfYDGLbEkTaK5gywjDOEN%2Fuploads%2FYFyFzEtc0CaBYbNnld1w%2Fimage.png?alt=media&amp;token=3c1b72af-3425-4f60-890e-37508b1e1cda" alt=""><figcaption></figcaption></figure>

## Struttura tecnica del motore di ricerca

La ricerca usa il CMS, il database PostgreSQL e Apache Solr. Ogni componente svolge un compito specifico. Il CMS gestisce i contenuti e li conserva in PostgreSQL. Quando necessario, invia a Solr una copia dei dati da usare nelle ricerche. Solr elabora le richieste degli utenti e restituisce i risultati. Il database rimane sempre la fonte principale dei contenuti.

### Come funziona l'indicizzazione dei risultati

Quando un redattore pubblica o modifica un contenuto, il sistema lo aggiunge automaticamente alla ricerca. Nella ricerca pubblica, i cittadini trovano solo i contenuti pubblicati. I redattori vedono anche i contenuti privati o programmati, mentre le bozze non sono visibili.&#x20;

Per modificare lo stato di un contenuto, il redattore può consultare [la pubblicazione](/sito-web/la-piattaforma/funzioni-generali-di-gestione-dei-contenuti/pubblicare-un-contenuto.md) e [la gestione dei contenuti nascosti o programmati](/sito-web/la-piattaforma/funzioni-generali-di-gestione-dei-contenuti/nascondere-o-programmare-un-contenuto.md).

Quando un redattore pubblica o modifica un contenuto, il CMS invia i dati a Solr tramite chiamate HTTP. Solr aggiorna il proprio indice e la ricerca usa questa copia per mostrare i risultati. Un contenuto assente dall'indice non appare nella ricerca o nei blocchi filtrabili, anche se è presente nel database PostgreSQL.

### Componenti coinvolti

Il CMS è un'applicazione monolitica in PHP. PostgreSQL conserva i contenuti del sito e resta la fonte dei dati. Il CMS usa **Apache Solr** tramite l'estensione **ezfind**. Ogni piattaforma ha un core Solr dedicato, che contiene una copia indicizzata dei contenuti pubblicati. L'architettura include anche Redis, che conserva i dati temporanei delle sessioni, e Varnish, che gestisce la cache HTTP.

### Ricerche e filtri

Il componente **ocsearchtools** usa l'indice Solr per elaborare le ricerche. Traduce le parole inserite dagli utenti nel formato usato dal motore e gestisce la navigazione a faccette, cioè i filtri per sezione e argomento. La ricerca del sito e i blocchi filtrabili interrogano Solr, non PostgreSQL. Per i dataset personalizzati è disponibile il componente **occustomfind**.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.opencityitalia.it/sito-web/la-piattaforma/il-motore-di-ricerca.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
