Skip to content

Commit bdccd53

Browse files
Alexandre Oliveiraclaude
andcommitted
docs(turing): add architecture, SN concepts, GenAI, security and getting started docs
- Add architecture-overview.md: component diagram, indexing/search flows, tech stack, deployment topologies - Add sn-concepts.md: SN Site, Targeting Rules, Spotlights, Merge Providers, Facets, Search Response - Add genai-llm.md: LLM providers, embedding stores, RAG, tool callings, MCP servers, AI Agents - Add security-keycloak.md: OAuth2/OIDC setup, Keycloak config, Apache reverse proxy - Add getting-started/intro.md and core-concepts.md for beginner-friendly onboarding - Update sidebars-turing.ts: add Getting Started and Technical Reference categories - Enable Mermaid diagrams: add @docusaurus/theme-mermaid to package.json and docusaurus.config.ts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 47db35f commit bdccd53

9 files changed

Lines changed: 1775 additions & 0 deletions

File tree

docs-turing/architecture-overview.md

Lines changed: 298 additions & 0 deletions
Large diffs are not rendered by default.

docs-turing/genai-llm.md

Lines changed: 334 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
---
2+
sidebar_position: 2
3+
---
4+
5+
# Core Concepts
6+
7+
This page explains the fundamental concepts of Turing ES in plain terms. No configuration files, no code — just the mental model you need before diving into the technical documentation.
8+
9+
---
10+
11+
## Semantic Navigation Site
12+
13+
The **Semantic Navigation Site** (or SN Site) is the central object in Turing ES. Everything revolves around it.
14+
15+
Think of an SN Site as a configured search experience. It defines:
16+
17+
- **What content is indexed** — which fields each document has (title, text, URL, date, image, and custom fields)
18+
- **How content is searched** — which fields are searchable, how results are ranked, how many results per page
19+
- **How results are navigated** — which fields become filterable facets (e.g., category, author, date range)
20+
- **How results are presented** — field mappings for display, highlighting of matched terms
21+
- **Advanced behaviors** — Spotlights for curated results, Targeting Rules for personalization, Merge Providers for combining content from multiple sources
22+
- **AI capabilities** — whether GenAI and RAG are enabled, and which language model to use
23+
24+
A single Turing ES instance can host multiple SN Sites, each independently configured. For example, you could have one site for your public website, another for your internal knowledge base, and a third for your product documentation — all on the same server.
25+
26+
---
27+
28+
## Content Ingestion
29+
30+
Content does not flow into Turing ES on its own. It needs connectors.
31+
32+
### Viglet Dumont DEP
33+
34+
**Viglet Dumont DEP** is a separate application that manages connectors — the components responsible for extracting content from its original source and sending it to Turing ES. Dumont DEP and Turing ES are separate projects that work together: Dumont handles *getting* content, Turing handles *indexing and searching* it.
35+
36+
```mermaid
37+
graph LR
38+
SRC["Content Sources\nCMS · Database · Files · Web"]
39+
DEP["Viglet Dumont DEP\nConnectors"]
40+
TES["Turing ES\nREST API"]
41+
IDX["Index\n(Solr)"]
42+
43+
SRC --> DEP
44+
DEP -->|"HTTP POST"| TES
45+
TES --> IDX
46+
```
47+
48+
### How a connector works
49+
50+
Each connector in Dumont DEP:
51+
1. Connects to a content source (a website, a database table, a file folder, a CMS)
52+
2. Extracts documents according to its configuration (which pages to crawl, which SQL query to run, which folder to scan)
53+
3. Sends each document to the Turing ES REST API, targeting a specific SN Site
54+
55+
Turing ES receives the document, validates it against the SN Site configuration, and creates an indexing job. The job processes the document and writes it to Solr — making it immediately searchable.
56+
57+
### What happens when two connectors index the same content
58+
59+
Sometimes the same real-world document exists in two systems with complementary information. For example, your CMS has structured metadata (author, tags, content type) while your web crawler has the full rendered text of the same page. Neither connector alone gives you a complete document.
60+
61+
**Merge Providers** solve this by instructing Turing ES to detect when two connectors have indexed the same document — using a shared field as a join key — and merge them into one enriched result. See [Semantic Navigation Concepts](../sn-concepts.md#merge-providers) to learn how to configure this.
62+
63+
---
64+
65+
## Search
66+
67+
When a user searches on an SN Site, this is what happens — in simple terms:
68+
69+
```mermaid
70+
sequenceDiagram
71+
participant U as User
72+
participant API as Turing ES API
73+
participant S as Solr
74+
participant SP as Spotlight Engine
75+
76+
U->>API: Query + user profile attributes
77+
API->>API: Targeting Rules →\nbuild Solr filter queries
78+
API->>S: Query + filters + facets
79+
S-->>API: Filtered results + facet counts
80+
API->>API: Map fields + highlighting
81+
API->>SP: Check spotlight term match
82+
SP-->>API: Inject curated results\ninto response
83+
API-->>U: Results · Facets · Spotlights · Locales
84+
```
85+
86+
1. The query arrives at the Turing ES API along with the user's profile attributes (if Targeting Rules are configured)
87+
2. **Targeting Rules** run first — they translate the user's profile attributes into additional Solr filter queries, so only content relevant to that user is retrieved
88+
3. Turing ES executes the Solr query with those filters, facet counts, and result ranking applied together
89+
4. Results come back from Solr already filtered; Turing ES maps fields and applies highlighting
90+
5. **Spotlights** are checked last — if the query matches a spotlight term, curated documents are injected at their configured positions in the response
91+
6. The final response — results, facets, spotlights, locales, spell check, and similar documents — goes back to the client
92+
93+
### Facets
94+
95+
Facets are filterable dimensions shown alongside search results. A user searching for "annual report" might see facets for *Year*, *Department*, and *Document Type*, and click to narrow results to "Finance" documents from "2024".
96+
97+
Facets are configured per SN Site, at the field level. Any indexed field can become a facet — the configuration defines how it is labeled, sorted, and counted.
98+
99+
### Spotlights
100+
101+
A Spotlight is a curated result pinned to a specific search term. When someone searches for "benefits", you can ensure your HR benefits page always appears at the top — regardless of how it ranks organically.
102+
103+
Spotlights are configured per SN Site and managed through the admin console. See [Spotlights](../sn-concepts.md#spotlights) for details.
104+
105+
### Targeting Rules
106+
107+
Targeting Rules let you show different results to different users from the same index. A document tagged as `audience: internal` only appears for users whose profile includes that attribute. Users without a matching profile always see untagged content.
108+
109+
See [Targeting Rules](../sn-concepts.md#targeting-rules) for a full explanation.
110+
111+
---
112+
113+
## Generative AI
114+
115+
Turing ES integrates generative AI in two places: directly on **SN Sites** (search + summarization) and through standalone **AI Agents** (open-ended chat with tools).
116+
117+
### RAG on an SN Site
118+
119+
When GenAI is enabled for an SN Site, indexed documents are also stored as **vector embeddings** — a mathematical representation of their meaning, not just their words. When a user asks a question, Turing ES:
120+
121+
1. Finds the most semantically relevant documents (not just keyword matches) using the vector embeddings
122+
2. Passes those documents as context to a language model
123+
3. Returns a natural-language answer grounded in your actual content
124+
125+
This is called **Retrieval-Augmented Generation (RAG)**. The LLM does not make things up — it answers based on what is in your index.
126+
127+
### Knowledge Base
128+
129+
Beyond SN Sites, Turing ES provides a **Knowledge Base** — a file and folder interface in the admin console (backed by MinIO) where you can upload documents directly. These files are also indexed as vector embeddings and become available to AI Agents as a searchable knowledge source, independent of any connector or SN Site.
130+
131+
### AI Agents
132+
133+
An **AI Agent** is a named assistant that you compose from three ingredients:
134+
135+
- A **language model** (Anthropic Claude, OpenAI, Gemini, Ollama, or others)
136+
- A set of **tools** it can call (search your SN Sites, query the Knowledge Base, browse the web, run Python code, get financial data, and more)
137+
- Optionally, one or more **MCP Servers** — external services that provide additional tools via the Model Context Protocol
138+
139+
Each AI Agent appears as its own tab in the Turing ES chat interface. You can have a "Research Assistant" that combines SN Site search with web browsing, a "Data Analyst" that can run Python code and query your knowledge base, and a "Support Agent" that only sees your product documentation — all on the same platform.
140+
141+
See [GenAI & LLM Configuration](../genai-llm.md) for how to set all of this up.
142+
143+
---
144+
145+
## The Admin Console
146+
147+
Everything described above — SN Sites, connectors, Spotlights, Targeting Rules, Merge Providers, AI Agents, MCP Servers, and the Knowledge Base — is configured and managed through the **Turing ES Admin Console**: a browser-based React application served by Turing ES itself.
148+
149+
The admin console also exposes application logs (when MongoDB is configured), search metrics, and top search terms, giving you operational visibility without needing access to the server.
150+
151+
---
152+
153+
## Consuming Turing ES from Your Application
154+
155+
Turing ES exposes its search, chat, and indexing capabilities through four integration options. Choose the one that best fits your technology stack.
156+
157+
### REST API
158+
159+
The primary integration method. All search, indexing, and administration operations are available as HTTP endpoints. The search response is a self-describing JSON object with pre-built navigation links — no URL construction needed on the client side.
160+
161+
```
162+
GET https://<your-host>/api/sn/{siteName}/search?q=your+query
163+
```
164+
165+
Suitable for any language or platform that can make HTTP requests.
166+
167+
### GraphQL
168+
169+
Turing ES also exposes a GraphQL endpoint for clients that prefer a graph-based query model. Useful when you want to request only specific fields or combine multiple queries in a single request.
170+
171+
```
172+
POST https://<your-host>/graphql
173+
```
174+
175+
### Java SDK
176+
177+
An official Java client library is available on **Maven Central**. It provides a typed API for performing searches, submitting documents for indexing, and interacting with SN Sites — without dealing with raw HTTP or JSON.
178+
179+
```xml
180+
<dependency>
181+
<groupId>com.viglet.turing</groupId>
182+
<artifactId>turing-java-sdk</artifactId>
183+
<version>${turing.version}</version>
184+
</dependency>
185+
```
186+
187+
### JavaScript / TypeScript SDK
188+
189+
An official JavaScript SDK is available on **npm**. It is TypeScript-ready and covers the same search and indexing operations as the Java SDK, suited for web applications and Node.js backends.
190+
191+
```bash
192+
npm install @viglet/turing-sdk
193+
```
194+
195+
---
196+
197+
## Ready to go deeper?
198+
199+
| I want to... | Go to |
200+
|---|---|
201+
| Understand the full system architecture | [Architecture Overview](../architecture-overview.md) |
202+
| Configure Spotlights, Targeting Rules, or Merge Providers | [Semantic Navigation Concepts](../sn-concepts.md) |
203+
| Set up GenAI, RAG, or AI Agents | [GenAI & LLM Configuration](../genai-llm.md) |
204+
| Secure Turing ES with Keycloak | [Security & Keycloak](../security-keycloak.md) |
205+
| Install Turing ES | [Installation Guide](../installation-guide.md) |
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# What is Turing ES?
6+
7+
**Viglet Turing ES** is an open-source enterprise search platform. It helps organizations make their content findable, understandable, and interactive — through keyword search, faceted navigation, and generative AI conversations.
8+
9+
Whether you have thousands of documents on a file server, pages on a CMS, records in a database, or a combination of all of them, Turing ES indexes everything into a single search experience that your users can explore naturally.
10+
11+
---
12+
13+
## What can you do with Turing ES?
14+
15+
### Search your content
16+
Index content from multiple sources and expose a unified, faceted search experience. Users can filter results by category, date, author, or any attribute you define — and always find what they are looking for.
17+
18+
### Ask questions, get answers
19+
Enable generative AI on your search site and let users ask questions in natural language. Turing ES retrieves the most relevant documents and uses an LLM to generate a grounded, accurate response — not a hallucination.
20+
21+
### Build AI Agents
22+
Compose AI Agents that combine a language model with a curated set of tools: search your content, browse the web, run code, query financial data, call external systems via MCP, and more. Each agent appears as a chat tab ready to assist users.
23+
24+
### Connect any content source
25+
Turing ES receives content from **Viglet Dumont DEP**, a companion application that provides connectors for web crawlers, databases, file systems, AEM/WEM, and WordPress. Connectors run independently and push content to Turing ES through its REST API.
26+
27+
### Integrate with any stack
28+
Consume Turing ES from your application via **REST API**, **GraphQL**, the **Java SDK** (available on Maven Central), or the **JavaScript / TypeScript SDK** `@viglet/turing-sdk` (available on npm).
29+
30+
---
31+
32+
## How it works at a glance
33+
34+
```mermaid
35+
graph LR
36+
A["Your Content\n(CMS, DB, files, web)"]
37+
B["Viglet Dumont DEP\n(Connectors)"]
38+
C["Turing ES\n(Index + Search + GenAI)"]
39+
D["Your Users\n(Search UI, Chat, API)"]
40+
41+
A --> B --> C --> D
42+
```
43+
44+
Content flows from its sources through Dumont DEP connectors into Turing ES, where it is indexed and made available to users through search interfaces, chat, and APIs.
45+
46+
---
47+
48+
## Key concepts
49+
50+
These are the main building blocks you will work with in Turing ES. You do not need to understand all of them before getting started — come back to each one as you need it.
51+
52+
| Concept | What it is | Learn more |
53+
|---|---|---|
54+
| **Semantic Navigation Site** | The central configuration object. Defines what content is indexed, how it is searched, and how results are presented. | [Core Concepts](./core-concepts.md) |
55+
| **Connector** | A component in Dumont DEP that extracts content from a source and sends it to Turing ES. | [Core Concepts](./core-concepts.md) |
56+
| **Facets** | Filterable attributes shown alongside search results (e.g., category, date, author). | [Core Concepts](./core-concepts.md) |
57+
| **Spotlight** | Curated results pinned to specific search terms. | [Semantic Navigation](../sn-concepts.md) |
58+
| **Targeting Rules** | Rules that show different results to different users based on their profile. | [Semantic Navigation](../sn-concepts.md) |
59+
| **Merge Providers** | Rules that combine documents from two different connectors into one enriched result. | [Semantic Navigation](../sn-concepts.md) |
60+
| **RAG** | Retrieval-Augmented Generation — finding relevant documents and using them to ground an LLM's response. | [GenAI & LLM](../genai-llm.md) |
61+
| **AI Agent** | A named assistant that combines an LLM with a set of tools and knowledge sources. | [GenAI & LLM](../genai-llm.md) |
62+
63+
---
64+
65+
## Where to go next
66+
67+
Not sure where to start? Here is a suggested path depending on what you want to do:
68+
69+
**I want to understand how Turing ES works**
70+
→ Read [Core Concepts](./core-concepts.md) first, then [Architecture Overview](../architecture-overview.md).
71+
72+
**I want to set up Turing ES**
73+
→ Go to the [Installation Guide](../installation-guide.md).
74+
75+
**I want to configure search for my content**
76+
→ Start with [Core Concepts](./core-concepts.md) then go to [Semantic Navigation](../sn-concepts.md).
77+
78+
**I want to add generative AI to my search**
79+
→ Read [GenAI & LLM Configuration](../genai-llm.md).
80+
81+
**I want to secure Turing ES with SSO**
82+
→ Go directly to [Security & Keycloak](../security-keycloak.md).

0 commit comments

Comments
 (0)