X
GO
https://www.DnnDeveloper.In


DotNetNuke Search and Search Crawlers


DotNetNuke Search and Search Crawlers

DotNetNuke (DNN) is a well-known content management system (CMS) that enables users to manage and publish web content with ease. The ability to search for content is an important feature of any CMS, and DNN includes a powerful search engine that can be customized to meet the needs of your website. In this article, we'll look at DNN search and search crawlers, as well as how they work together to make your website's content easily discoverable. The DNN Search feature is a crucial component of the DNN platform, allowing users to easily locate specific files, pages, users, or content within their website. This feature is powered by Lucene, an open-source search engine software library. This article aims to provide an overview of the DNN Search feature, including its crawlers.

DNN includes a powerful search engine that allows users to find content within a website or web application. DNN's search engine is based on a search provider, which is in charge of indexing and searching content. DNN comes pre-installed with several search providers, including the DNN search provider, the DotNetNuke Lucene search provider, and the Solr search provider. Each provider has unique strengths and weaknesses, and the choice of a provider is determined by the project's specific requirements.

Multiple third-party search providers are available for DotNetNuke, each with unique features and capabilities. While some providers cater to enterprise-level websites and offer advanced features such as faceted search and natural language processing, others are designed for smaller websites with simpler search needs. However, it is worth noting that the built-in search mechanism of DotNetNuke, known as Lucene.NET, is also available. The DNN search provider is a straightforward provider that can index and search database content. It is simple to set up and use a lightweight provider. It is not, however, appropriate for large websites with a large amount of content or for websites that require complex search queries.

Lucene.NET (https://lucenenet.apache.org) is a free and open-source search engine library that is used to build full-text search functionality into applications. It is a port of the Java-based Lucene library and is written in C# to be used with .NET Framework or .NET Core.

The DNN Lucene search provider creates an index of the website's content, which includes pages, articles, and other types of content. The index is updated on a regular basis to reflect the most recent changes to the content.

When a user conducts a search on the website, the search query is compared to the index, and the search results are shown. The search results can be sorted by relevance, date, or other criteria, and they can also be filtered by category, author, or tag.

Advanced search functionality such as phrase searching, wildcard searching, fuzzy searching, and Boolean operators are also supported by the DNN Lucene search provider (AND, OR, NOT). It also supports faceted search, which allows users to filter search results based on specified criteria, and natural language processing, which improves search results accuracy by understanding the intent behind the search query.

How to index, and crawled your content to conceder into search results

By implementing the ModuleSearchBase class in your custom module, you can provide the DNN Site Crawler with custom search result data. This enables the inclusion of custom data in the DNN search results, which you can then retrieve using the aforementioned query API.

ModuleSearchBase: To enhance integration with the latest search system, module developers are required to implement the new interface (which is actually an abstract class). it is more efficient due to its implementation of the Delta concept. Unlike ISearchable which mandates modules to provide all content at all times, ModuleSearchBase only requests changes in content since the previous run.

Module Content Indexer: Part of the Site Crawler and serving as the most critical Indexer, this component plays a vital role in fetching content from modules. Its function involves invoking modules that implement ISearchable or the new ModuleSearchBase.

As experienced DNNDevelopers, we define the FeatureController class, which includes the declaration and implementation of all interfaces such as IPortable, ISearchable, and IUpgradeable. To index the content, we pass a collection of SearchItemInfo that contains details related to the custom module, such as its title, content, description, URL, author, and so on. To install the module, we simply need to define the BusinessControllerClass element with the FeatureController class and declare Searchable as one of the supported features in the Module installable zip file for the manifest XML.

By passing inline parameters to the search user control, the SkinObject search box can be customized according to specific requirements, such as implementing categories or tagged search. Additionally, the design and layout of both the search box and search results can be adjusted as needed.

To acquire the DNN search outcomes, a developer may invoke the ModuleSearch method of the SearchController within the search results service:

using DotNetNuke.Services.Search.Controllers;

using DotNetNuke.Services.Search.Entities;

...

var query = new SearchQuery

{

    PageSize = request.PageSize,

    PageIndex = (request.PageNum > 0 ? request.PageNum : 1),

    SortField = SortFields.Relevance,

    SortDirection = SortDirections.Descending,

    KeyWords = request.Keyword,

    Tags = new List<string>() { "tag1", "tag2" },

    PortalIds = new List<int> { PortalSettings.PortalId },

    WildCardSearch = true,

};

var searchResults = SearchController.Instance.ModuleSearch(query);

After that, you may obtain the DNN search outcomes from the Results list within searchResults and then navigate back to the user interface of your search results module.

DNN Search and Search Crawlers

Search Crawlers: Essentially automated tasks that are scheduled to run at regular intervals to "crawl" through a website's content, files, and user information. As the crawler discovers new items, it generates index files containing this information.

The Index database files produced by the system are kept in the Search folder located in SiteRoot/App_Data. Notably, to enable a specific content component to be searchable, it is necessary to implement either the ISearchable class or the ModuleSearchBase class.

You can access the Search Crawlers by navigating to the Scheduler Tab in Settings > Scheduler.

DotNetNuke Search Engine

Crawlers In DotNetNuke Search

After creating the index files, the DNN search reads them to display relevant results to the user. It's helpful to think of Lucene as a file-based database that DNN Search queries using search keywords.

The generated index database files are saved in the SiteRoot/App_Data/Search folder. It's important to note that for the search crawler to recognize a particular piece of content as searchable, the component containing that content must implement either the ISearchable class or the ModuleSearchBase class.

DNN Lucene search provider is a great tool for improving DNN website search capabilities. It offers additional search options and improved search accuracy, allowing users to find the content they need more quickly and simply.

DNN Lucene search is a search engine tool that is integrated into the DNN (DotNetNuke) content management system. It utilizes Lucene.NET, an open-source search engine library, to enable fast and accurate search results across a website's content. With DNN Lucene search, users can customize search functionalities and display, such as categories, tagged search, and design/layout of search results. The tool is highly configurable and provides advanced search features such as sorting and faceting. Overall, DNN Lucene search provides a powerful search experience that enhances the usability and functionality of DNN websites.
Rating
Comments

Name (required)

Email (required)

Website

SEND US YOUR REQUIREMENTS

To know more about our affordable services, contact us today or drop us a mail with the requirements at Jitendra@DnnDeveloper.In We will respond to you as soon as possible.