🔒 You must be logged in as an Administrator or Editor to listen to this audio.
Based on the architecture of both Orchard Core and the CrestApps AI project, there are a few specific reasons why you are encountering a 404 "Page Not Found" error for /Admin/Elasticsearch/Index even when you believe the feature is enabled.
Here is an analysis of why this is happening and how CrestApps implements Elasticsearch.
1. Why are you getting a 404 on the Elasticsearch Indices page?
There are three common reasons for this in the Orchard Core / CrestApps ecosystem:
- You enabled the wrong Elasticsearch feature: There are actually multiple Elasticsearch features. You likely enabled the CrestApps AI Elasticsearch features (e.g.,
CrestApps.OrchardCore.AI.Documents.Elasticsearch) but did not enable the Native Orchard Core Elasticsearch module (OrchardCore.Search.Elasticsearch). The admin UI page you are looking for (/Admin/Elasticsearch/Index) belongs entirely to the native Orchard Core module. CrestApps relies on this native module for UI and connection management. - Missing Elasticsearch Connection Settings: Even if the native Orchard Core Elasticsearch module is enabled, it will often fail to register its admin routes (resulting in a 404) if it cannot connect to an actual Elasticsearch cluster. You must define your Elasticsearch URL, Port, and Credentials in your
appsettings.jsonor Environment Variables for the module to successfully boot up the admin pages. - Missing Permissions: Ensure your current user role (even if Administrator) explicitly has the
ManageElasticsearchIndicespermission granted in Security > Roles.
2. Is CrestApps implementing its own Elasticsearch from scratch?
No. CrestApps does not replace Orchard Core's native Elasticsearch; it extends it specifically for Artificial Intelligence (Vector Search).
Here is exactly how the architecture works based on the CrestApps open-source codebase:
Standard Text Search (Native Orchard Core): Orchard Core has built-in Elasticsearch capabilities (
OrchardCore.Search.Elasticsearch). This handles traditional keyword-based search for your blog posts, pages, etc. This is what provides theSearch > Elasticsearch > Indicesmenu.Vector Search & AI (CrestApps): Standard Elasticsearch in Orchard Core does not understand AI "Embeddings" (high-dimensional math vectors). CrestApps bridges this gap. If you look at the CrestApps source code, it includes specific modules like:
CrestApps.OrchardCore.AI.Documents.ElasticsearchCrestApps.OrchardCore.AI.DataSources.ElasticsearchCrestApps.OrchardCore.AI.Memory.Elasticsearch
Inside these modules, CrestApps implements custom services (like
ElasticsearchVectorSearchService.csandElasticsearchDataSourceContentManager.cs).
How they work together:
When you upload your Markdown file, CrestApps intercepts it, chunks the text, converts it into vector embeddings using your AI Provider (like OpenAI), and then uses its ElasticsearchVectorSearchService to inject those mathematical vectors into the indices managed by the native Orchard Core Elasticsearch module.
How to solve your issue right now:
- Go to Configuration > Features.
- Search exactly for
OrchardCore.Search.Elasticsearch(the description will say "Provides Elasticsearch capabilities"). Ensure this is enabled. - Search for
CrestApps.OrchardCore.AI.Documents.Elasticsearchand ensure this is enabled as well. - Check your
appsettings.jsonto ensure you have valid Elasticsearch connection strings configured. If the connection fails, Orchard Core suppresses the routing. - Once connected, the
Search > Elasticsearch > Indicesmenu will magically appear, and the/Admin/Elasticsearch/Indexroute will stop returning a 404. From there, you can create your index and link it to the CrestApps AI settings as we discussed earlier!