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.
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 |
Viglet Turing is built with a modern, scalable architecture supporting multiple deployment scenarios:
-
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
-
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
# 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
# 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
-
Access the Console: Open http://localhost:2700/console
-
Create a Site: Set up your first search site
-
Index Content: Use connectors or APIs to add your content
-
Start Searching: Experience semantic search with your data
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"));
});
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}`);
});
# Search via REST API
curl -X GET "http://localhost:2700/api/sn/sample-site/search?q=artificial%20intelligence&rows=10&_setlocale=en_US"
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
}
}
}
}
}
-
Type Safety: Strong typing prevents runtime errors
-
Flexible Queries: Clients can request exactly the data they need
-
Single Endpoint: All search operations through one GraphQL endpoint
-
Backward Compatibility: Existing REST API remains unchanged
-
Interactive Development: GraphiQL interface for query development
-
Consistent Results: Uses same search engine and processing as REST API
# 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
We welcome contributions from developers of all skill levels! Hereβs how you can get started:
-
π Report Issues: Found a bug? Create an issue on GitHub
-
π‘ Feature Requests: Have an idea? Weβd love to hear it
-
π Documentation: Help improve our docs and examples
-
π§ Code Contributions: Submit pull requests for bug fixes and features
-
Review our Contributing Guide
-
Follow our Code of Conduct
-
Check out issues labeled "good first issue" for beginners
-
π Website: https://viglet.org/turing/
-
π Issues: https://github.com/openviglet/turing/issues
-
π Discussions: https://github.com/openviglet/turing/discussions
-
π Full Documentation: https://docs.viglet.org/turing/
-
πΎ Downloads: https://viglet.org/turing/download/
-
π§ API Documentation: https://turing.viglet.com/latest/javadoc/
-
JavaScript SDK: JS SDK Guide
# Production with external database
docker-compose -f docker-compose.yml up -d
# Kubernetes deployment
kubectl apply -f k8s/
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
.
-
π Check our GitHub Discussions
-
π Report bugs via GitHub Issues
-
π§ Email us at opensource@viglet.com
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.