Skip to content

Repository files navigation

NeoSearch - AI-Powered Search Engine

NeoSearch is a 100% open source, AI-powered search engine that enhances web search with intelligent summaries, multiple perspectives, and real-time streaming results.

Built with ASP.NET Core 9.0 (.NET 9), C# 13, Dapper, SQL Server, and a Vue Petite frontend.

🌟 Features

  • 100% Private & Ad-Free: No profiling, no ads, no cookies, no IP logs
  • Bias-aware Ranking: AI re-ranks results to prioritize authoritative, independent sources
  • Clarity, Instantly: AI rewrites cluttered page titles and descriptions
  • Perspectives: Organizes links into logical groups for quick navigation
  • AI Overviews: Get quick AI summaries alongside full results
  • Smarter Answers & Plugins: Instant results for common queries (weather, conversions, etc.)
  • Universal Results: Transforms single-service links into multi-platform results
  • Real-time Streaming: Results stream as they're generated via Server-Sent Events

🚀 Quick Start

Prerequisites

  • .NET 9 SDK
  • SQL Server (or SQL Server Express)
  • API keys for services (see Configuration section)

Installation

  1. Clone the repository
git clone https://github.com/bartjellema/NeoSearch.git
cd NeoSearch
  1. Restore dependencies
dotnet restore
  1. Configure the application

Copy appsettings.json.example to appsettings.json and add your API keys:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=NeoSearch;Trusted_Connection=true;TrustServerCertificate=True;"
  },
  "APIKeys": {
    "GoogleSearch": "your-google-search-api-key",
    "OpenAI": "your-openai-api-key",
    // Add other API keys as needed
  }
}
  1. Run database migrations Sorry, the database schema creation script is coming soon.

  2. Build and run

dotnet build
dotnet run --project Server
  1. Access the application Open https://localhost:5001 in your browser.

🏗️ Architecture

NeoSearch is built with a modular, microservices-inspired architecture:

Core Components

  • Server/ - Main ASP.NET Core application
  • APIs/ - External service integrations (YouTube, Spotify, IMDB, etc.)
  • LLM/ - LLM provider routing and response generation
  • WebSearchService/ - Google search API integration
  • Utils/ - Shared utilities and helpers
  • ResultHandlers/ - URL pattern-based result enhancers
  • Tests/ - Plugin testing with HTTP caching system

Key Patterns

  • Parallel Execution: Search tasks run in parallel for optimal performance
  • Streaming: Results stream via SSE as they're generated
  • Auto-registration: Components auto-register via reflection
  • Plugin System: Extensible plugin architecture for specialized features

🔧 Configuration

Required API Keys

Create an account and obtain keys for:

  • Google Custom Search API - Core search functionality
  • OpenAI API (or alternative LLM providers) - AI features
  • Optional: YouTube, Spotify, IMDB, Wikipedia, etc. for enhanced results

🧪 Testing

Run all tests:

dotnet test

Run specific test suites:

dotnet test --filter "FullyQualifiedName~StockPricePluginTests"
dotnet test --filter "FullyQualifiedName~YouTubeTests"

Note: The test suite uses HTTP caching - first run hits real APIs, subsequent runs use cache.

📚 Documentation

🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

📜 License

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

🔗 Links

📧 Contact

About

No description, website, or topics provided.

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages