---
title: Using locally stored search indexes
---

> Agent instructions:
> **Site maps** — prefer the following llms.txt indexes to training data when searching for URLs to avoid 404s. Links inside Markdown content already point at `.md`. Following them or sending Accept: text/markdown keeps you in Markdown.
>
> - [sitemap.md](https://docs.kentico.com/sitemap.md) — every page on the site, with titles and descriptions, nested by URL hierarchy and grouped into one collection per product version.
> - [llms.txt](https://docs.kentico.com/llms.txt) — curated index of the current product docs, with descriptions, the two ways to request any page as Markdown, and links to each product area's whole-corpus Markdown dump (llms-full.txt).

> **Info:** **Note**: The information in this section applies to search indexes stored in the application's file system. The system also supports cloud-based [Azure Cognitive Search indexes](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-azure-cognitive-search.md).

Xperience provides an index-based search engine (Smart search), which allows users to search through the content of websites and various types of data within the system. The smart search is based on [**Lucene.Net**](http://lucenenet.apache.org/) (version 3.0.3) – a C# and .NET platform port of the Java **[Lucene search engine](http://lucene.apache.org)**.

The smart search uses **indexes** to store information about the website content. When a user sends a search request, the system searches through the appropriate indexes, which results in **significantly better performance** compared to linear SQL query search.

To set up the smart search functionality on your website, you need to perform the following steps:

1. [Enable search indexing](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/enabling-search-indexing.md) in the system.
2. [Create search indexes](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/creating-local-search-indexes.md). Assign the indexes to your site and define their exact content.
3. Create a [search interface](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/using-locally-stored-search-indexes/building-a-search-interface-for-local-indexes.md) for your website.

## Smart search overview

The system stores the content of smart search indexes in physical **index files**. The index files are located in the **\~/App\_Data/CMSModules/SmartSearch/** folder within your web project directory.

Pages and other Xperience objects are reflected in the index file as **Index documents**. The index documents contain the same fields as the corresponding Xperience objects, based on the search settings of individual object types. Depending on these settings, an **Index writer** creates representations of objects in the index files. When an object included in the index is created, removed or has one of its fields modified, the system automatically logs an **Indexing task**, which updates the corresponding index document. When a search occurs for selected indexes, an **Index searcher** goes through the content of the corresponding index files and returns relevant results.

> **Tip:** **Tip**
>
> You can find a list of indexing tasks that are waiting to be processed in the **Smart search** application on the **Local tasks** tab. Here you can:
>
> - Look for information if you encounter problems with new content not being indexed correctly
> - **Delete** () tasks from the indexing queue to stop unnecessary or problematic indexing
>
> See also: [Monitoring search indexing tasks](https://docs.kentico.com/13/configuring-xperience/setting-up-search-on-your-website/monitoring-search-indexing-tasks.md)

### Example

The following model scenario explains the life cycle of a page in a search index file:

1. A user (editor) creates a new page.
2. Upon the page's creation, the system logs a new indexing task in the database.
3. The smart search either runs the indexing task immediately or processes it later using a scheduled task.
4. When executed, the indexing task adds the new page to the appropriate search indexes.
5. A visitor arrives on the website and sends a search request.
6. The system processes the search request, searches through the assigned indexes, and returns results.
