Table of Contents

Search and Indexing

The DynamicWeb indexing engine – sometimes referred to as Repositories – is a powerful and fast generalized search framework based on Lucene.Net 3.0.3, a C# port of the Java based Apache Lucene search engine library.

Broadly speaking, the indexing engine consists of the following elements:

  • Indexes – data structures pointing to documents and optimized for data retrieval
  • Queries – requests for information directed at an index and limited by criteria you define
  • Facets – used to create filters in frontend by passing parameters to a query

All of these elements can be heavily configured to suit your particular scenario – and all exist within a so-called repository, basically a folder in the file archive containing configuration files.

DynamicWeb 10 ships with four standard IndexBuilders used to index different types of content:

You can read more about using the standard IndexBuilders in the implementing documentation - this section will focus on what to do when you need to extend the standard capabilities.

How Lucene.NET works

If you're interested in the nitty-gritty details of how Lucene.NET works you can explore this topic in-depth in our How Lucene works-article. In this article we will cover some of the basic questions which might be relevant to your extensibility-projects, e.g.:

  • How documents are indexed
  • How queries work
  • How analyzers work
  • How facets work

Extensibility points

If the capabilities of our standard indexing engine are not adequate for your needs there are several ways to extend or supplant standard behavior.

Fundamentally, you can do two things:

  • Influence the way indexes are built or create custom index-types - see here
  • Influence the way an index can be queried - see here
To top