Skip to content

Kentico/xperience-by-kentico-lucene

Repository files navigation

Xperience by Kentico Lucene

7-day bug-fix policy CI: Build and Test

Package
Lucene NuGet Package
Lucene Administration only NuGet Package
Lucene Live site only NuGet Package

Description

Xperience by Kentico search integration with the latest 4.8 beta version of Lucene.NET, enabling auto-indexing of content in Xperience based on application-local, code-defined search indexes and search results retrieval.

This repository contains projects for 3 NuGet packages, that is Kentico.Xperience.Lucene.Admin, Kentico.Xperience.Lucene.Core and Kentico.Xperience.Lucene.

Use Kentico.Xperience.Lucene. This is the recommended version for usage of Xperience by Kentico support for Lucene .NET NuGet package and unlike the other two contains full support for both admin ui and live site.

Use Kentico.Xperience.Lucene.Core in your Xperience by Kentico project for Lucene Search in your live website. Use Kentico.Xperience.Lucene.Admin in your Xperience by Kentico Administration project for Lucene Search Administration UI managment.

Screenshots

Index listing

Index edit

Library Version Matrix

Xperience Version Library Version
>= 29.0.0 >= 6.1.x
>= 28.4.3, < 29.0.0 >= 5.x.x
>= 28.0.0 >= 3.x.x
>= 26.2.0, < 27.0.0 >= 2.x, < 3.x.x

Dependencies

Package Installation

Add the package to your application using the .NET CLI

dotnet add package Kentico.Xperience.Lucene

Quick Start

This section is relevant for each Lucene NuGet. Steps number 3 and 4 are only relevant if you use NuGet package Kentico.Xperience.Lucene or Kentico.Xperience.Lucene.Admin.

  1. Define a custom DefaultLuceneIndexingStrategy implementation to customize how content pages/content items are processed for the index.

  2. Add this library to the application services, registering your custom DefaultLuceneIndexingStrategy and Lucene

    // Program.cs
    
    // Registers all services and uses default indexing behavior (no data is indexed)
    services.AddKenticoLucene();
    
    // or
    
    // Registers all services and enables custom indexing behavior
    services.AddKenticoLucene(builder =>
       builder
          .RegisterStrategy<GlobalSearchIndexingStrategy>("DefaultStrategy")
          .RegisterStrategy<ArticlesSearchIndexingStrategy>("ArticlesStrategy"));
  3. Create an index in Xperience's Administration within the Search application added by this library.

  4. Rebuild the index in Xperience's Administration within the Search application added by this library.

  5. Use the ILuceneSearchService (via DI) to retrieve the index populated by your custom ILuceneIndexingStrategy.

  6. Execute a search with a customized Lucene Query (like the MatchAllDocsQuery) using the ILuceneSearchService.

  7. Display the results on your site with a Razor View đź‘Ť.

Full Instructions

View the Usage Guide for more detailed instructions.

You can view and start the DancingGoat example project. For advanced Strategy usage add your website url base to the WebCrawlerBaseUrl appsettings.json

{
    // Other settings ...
    // Our example runs on localhost with port: 58093
    "WebCrawlerBaseUrl": "http://localhost:58093/"
}

This is required for our Scraping example.

Projects

Project Description
src/Kentico.Xperience.Lucene Xperience by Kentico Lucene integration library
src/Kentico.Xperience.Lucene.Core Xperience by Kentico Lucene integration Live site only library
src/Kentico.Xperience.Lucene.Admin Xperience by Kentico Lucene integration Admin only library
examples/DancingGoat Example project to showcase basic search functionality

Contributing

To see the guidelines for Contributing to Kentico open source software, please see Kentico's CONTRIBUTING.md for more information and follow the Kentico's CODE_OF_CONDUCT.

Instructions and technical details for contributing to this project can be found in Contributing Setup.

License

Distributed under the MIT License. See LICENSE.md for more information.

Support

7-day bug-fix policy

This project has Full support by 7-day bug-fix policy.

See SUPPORT.md for more information.

Security

For any security issues see Kentico's SECURITY.md.