Skip to content

✨ 🧬 Turing ES - Enterprise Search, Semantic Navigation, Chatbot using Search Engine and Generative AI.

License

Notifications You must be signed in to change notification settings

openviglet/turing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ” Viglet Turing ES

Enterprise Search Platform with Semantic Navigation, Chatbots, and Generative AI

Download Release%202025 License GitHub last commit build.yml?branch=2025 Sonar Code%20Quality brightgreen?style=for the badge&logo=SonarCloud Javadoc Release%202025

πŸš€ What is Viglet Turing?

Viglet Turing (https://viglet.org/turing/) is a powerful enterprise search platform that revolutionizes how organizations discover, search, and interact with their content. By combining cutting-edge technologies like semantic navigation, intelligent chatbots, and generative artificial intelligence, Turing provides a comprehensive solution for modern enterprise search needs.

⭐ Key Features

Feature Description

🧠 Semantic Navigation

Advanced search with intelligent content understanding and contextual results

πŸ€– AI-Powered Chatbots

Interactive conversational search with natural language processing

✨ Generative AI Integration

Leverage modern AI models for enhanced search experiences

πŸ”— Enterprise Connectors

Seamless integration with CMS platforms, databases, and file systems

🌐 Multi-Source Indexing

Index content from websites, documents, databases, and more

πŸ“Š Real-time Analytics

Monitor search performance and user behavior

πŸ”’ Enterprise Security

Built-in authentication and authorization capabilities

πŸ“± Modern UI/UX

React-based responsive interface with customizable themes

πŸ—οΈ Architecture & Components

Viglet Turing is built with a modern, scalable architecture supporting multiple deployment scenarios:

Core Components

  • Turing App: Main Spring Boot application with REST APIs

  • Turing UI: Modern React-based user interface

  • Search Engine: Apache Solr integration with intelligent indexing

  • Database Layer: Support for H2, MariaDB, and other databases

  • Message Queue: Apache Artemis for asynchronous processing

Integration Ecosystem

πŸ”Œ Content Sources

  • CMS Connectors: Adobe Experience Manager (AEM), WordPress, and more

  • Web Crawler: Automated website content indexing

  • Database Connectors: MySQL, PostgreSQL, Oracle, SQL Server

  • File System: Local and network file indexing

πŸ› οΈ Developer Tools

  • Java SDK: Full-featured client library for Java applications

  • JavaScript SDK: TypeScript-ready SDK for web applications

  • REST APIs: Comprehensive RESTful API for all operations

🚦 Quick Start

Prerequisites

  • Java 21+ β˜•

  • Maven 3.6+ πŸ“¦

  • Docker & Docker Compose (recommended) 🐳

# Clone the repository
git clone https://github.com/openviglet/turing.git
cd turing

# Start all services with Docker Compose
docker-compose up -d

# Access Turing at http://localhost:2700

Option 2: Local Development

# Clone and build
git clone https://github.com/openviglet/turing.git
cd turing

# Build the project
./mvnw clean install

# Run the application
./mvnw spring-boot:run -pl turing-app

# Access Turing at http://localhost:2700

🎯 First Steps After Installation

  1. Access the Console: Open http://localhost:2700/console

  2. Create a Site: Set up your first search site

  3. Index Content: Use connectors or APIs to add your content

  4. Start Searching: Experience semantic search with your data

πŸ’» Code Examples

Java SDK Example

import com.viglet.turing.client.sn.HttpTurSNServer;
import com.viglet.turing.client.sn.TurSNQuery;
import com.viglet.turing.client.sn.response.QueryTurSNResponse;

// Connect to Turing server
HttpTurSNServer turSNServer = new HttpTurSNServer("http://localhost:2700/api/sn/MySite");

// Create search query
TurSNQuery query = new TurSNQuery();
query.setQuery("artificial intelligence");
query.setRows(10);
query.setPageNumber(1);

// Execute search
QueryTurSNResponse response = turSNServer.query(query);
response.getResults().getDocument().forEach(doc -> {
    System.out.println("Title: " + doc.getFields().get("title"));
    System.out.println("Content: " + doc.getFields().get("content"));
});

JavaScript SDK Example

import { TurSNSiteSearchService } from '@openviglet/turing-js-sdk';

// Initialize search service
const searchService = new TurSNSiteSearchService('http://localhost:2700');

// Perform search
const results = await searchService.search('sample-site', {
  q: 'machine learning',
  rows: 10,
  currentPage: 1,
  localeRequest: 'en_US',
});

console.log(`Found ${results.queryContext?.count} results`);
results.results?.document?.forEach(doc => {
  console.log(`Title: ${doc.fields?.title}`);
  console.log(`Description: ${doc.fields?.description}`);
});

REST API Example

# Search via REST API
curl -X GET "http://localhost:2700/api/sn/sample-site/search?q=artificial%20intelligence&rows=10&_setlocale=en_US"

GraphQL API Example

API Endpoints

  • GraphQL API: POST /graphql

  • GraphiQL Interface: GET /graphiql

Example Usage

query {
  siteSearch(
    siteName: "sample-site"
    searchParams: {
      q: "technology"
      rows: 10
      p: 1
      sort: "relevance"
    }
    locale: "en_US"
  ) {
    queryContext {
      count
      responseTime
    }
    results {
      numFound
      document {
        fields {
          title
          text
          url
        }
      }
    }
  }
}

Integration Benefits

  1. Type Safety: Strong typing prevents runtime errors

  2. Flexible Queries: Clients can request exactly the data they need

  3. Single Endpoint: All search operations through one GraphQL endpoint

  4. Backward Compatibility: Existing REST API remains unchanged

  5. Interactive Development: GraphiQL interface for query development

  6. Consistent Results: Uses same search engine and processing as REST API

πŸ› οΈ Development Setup

Building from Source

# Clone repository
git clone https://github.com/openviglet/turing.git
cd turing

# Build all modules
./mvnw clean install

# Build specific components
./mvnw clean install -pl turing-app          # Main application
./mvnw clean install -pl turing-java-sdk     # Java SDK
cd turing-js-sdk/js-sdk-lib; npm run build              # JavaScript SDK

Running Tests

# Run all tests
./mvnw test

# Run specific module tests
./mvnw test -pl turing-app

Development Environment

# Start development stack
docker-compose -f docker-compose.dev.yml up -d

# Run app in development mode
./mvnw spring-boot:run -pl turing-app -Dspring-boot.run.profiles=development

🀝 Community & Contributing

Getting Involved

We welcome contributions from developers of all skill levels! Here’s how you can get started:

  1. πŸ› Report Issues: Found a bug? Create an issue on GitHub

  2. πŸ’‘ Feature Requests: Have an idea? We’d love to hear it

  3. πŸ“– Documentation: Help improve our docs and examples

  4. πŸ”§ Code Contributions: Submit pull requests for bug fixes and features

Contribution Guidelines

πŸ“š Documentation & Resources

SDK Documentation

🐳 Deployment Options

Docker Production Setup

# Production with external database
docker-compose -f docker-compose.yml up -d

# Kubernetes deployment
kubectl apply -f k8s/

Traditional Deployment

# Build production JAR
./mvnw clean package -pl turing-app

# Run with production profile
java -jar turing-app/target/viglet-turing.jar

πŸ†˜ Troubleshooting

Common Issues

Q: Search results are empty A: Ensure your content is properly indexed and the search site is configured correctly.

Q: Docker containers won’t start A: Check that ports 2700, 8983, and 3306 are not in use by other applications.

Q: Build fails with Java version error A: Ensure you’re using Java 21 or higher. Check with java -version.

Getting Help

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🌟 Star History

If you find Viglet Turing useful, please consider giving us a star on GitHub! ⭐


Built with ❀️ by the Viglet Team

About

✨ 🧬 Turing ES - Enterprise Search, Semantic Navigation, Chatbot using Search Engine and Generative AI.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages