---
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 Search indexes](https://docs.kentico.com/k12sp/configuring-kentico/setting-up-search-on-your-website/using-azure-search.md).

Kentico 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/k12sp/configuring-kentico/setting-up-search-on-your-website/enabling-search-indexing.md) in the system.
2. [Create search indexes](https://docs.kentico.com/k12sp/configuring-kentico/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 on your website. For MVC sites refer to [Building a search interface for local indexes in MVC](https://docs.kentico.com/k12sp/configuring-kentico/setting-up-search-on-your-website/using-locally-stored-search-indexes/building-a-search-interface-for-local-indexes-in-mvc.md), for Portal Engine sites, see [Building a search interface for local indexes](https://docs.kentico.com/k12sp/configuring-kentico/setting-up-search-on-your-website/using-locally-stored-search-indexes/building-a-search-interface-for-local-indexes.md) and [Adding filters for local search indexes](https://docs.kentico.com/k12sp/configuring-kentico/setting-up-search-on-your-website/using-locally-stored-search-indexes/adding-filters-for-local-search-indexes.md).

## 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, forums and other Kentico objects are reflected in the index file as **Index documents**. The index documents contain the same fields as the corresponding Kentico 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/k12sp/configuring-kentico/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. The system indexes the page's content based on the search field settings defined for the given page type.
5. A visitor arrives on the website and sends a search request via a smart search web part.
6. The system processes the search request, searches through the assigned indexes, and returns results.
