A modern, cross-platform desktop GUI application for exploring and managing Apache Lucene.NET indexes. NeoLuke provides a clean, intuitive interface for developers and search engineers working with Lucene.NET or supported Lucene indexes.
- Index Overview: View index statistics, segment information, and field details
- Documents: Browse and view documents in your index with full field details
- Search: Test queries with multiple analyzers and view relevance scores
- Analysis: Analyze text with different tokenizers and see token breakdowns
- Commits: View index file and segment details
- More Like This: Find similar documents using Lucene's MLT query
- Export Tools: Export term lists
- Index Management: Check and optimize your indexes
- Cross-Platform: Runs on Windows, macOS, and Linux
- .NET 10.0 SDK or later
git clone https://github.com/paulirwin/neoluke.git
cd neoluke
dotnet buildIf you don't have a Lucene index handy, you can generate a demo index with sample data:
# On Windows, macOS, or Linux with PowerShell installed
pwsh ./generate-demo.ps1This will create a sample index in the demo/ directory with test documents you can use to explore NeoLuke's features.
dotnet run --project NeoLuke/NeoLuke.csprojOr use the convenience script:
pwsh ./run.ps1When NeoLuke starts, you'll be prompted to select a Lucene index directory:
- Click Browse to navigate to your index folder (or use the demo index generated above at
demo/) - Choose whether to open in read-only mode (recommended for production indexes)
- Optionally expand Expert options to change settings
- Click OK to open the index
View high-level statistics about your index including:
- Number of documents and fields
- Index version and format
- Segment information
- Field term distribution
- Top terms by frequency
Right-click on any term to search for it across your index.
Browse documents by document ID:
- View all fields and their values
- See stored vs indexed field information
- Navigate between documents
- Copy field values
Test queries against your index:
- Enter queries using Lucene query syntax
- Preview the parsed query
- Choose from available analyzers
- View search results with relevance scores
- Right-click results to Explain scoring or Show all fields
Analyze how text is tokenized:
- Select an analyzer
- Enter text to analyze
- View the token stream with positions and attributes
- Click tokens to see detailed attributes
Find similar documents:
- Enter a document ID
- Select fields to use for similarity
- Adjust parameters (min term frequency, min doc frequency, etc.)
- View similar documents ranked by relevance
Explore commit history:
- View all files in the index
- See segment details
- Inspect segment statistics
Monitor application activity and debug issues with real-time logging.
- Open Index: Switch to a different index
- Reopen Current Index: Reload the current index to see recent changes
- Reopen Current Index as Read/Write (or Read-Only): Change access mode of the current index
- Close Index: Close the current index
- Optimize Index: Reduce the number of segments (write mode only)
- Check Index: Validate index integrity
- Export Terms: Export term lists to CSV or text files
dotnet testlukenet/
├── NeoLuke/ # Main application
│ ├── Assets/ # Static assets (icons, images)
│ ├── Models/ # Data models
│ ├── Services/ # Application services
│ ├── ViewModels/ # MVVM view models
│ └── Views/ # Avalonia XAML views
├── NeoLuke.Tests/ # Unit and integration tests
├── NeoLuke.DemoGenerator/ # Demo index generator
├── demo/ # Sample index (generated)
└── docs/ # Documentation (mostly for AI agent use)
NeoLuke follows the MVVM (Model-View-ViewModel) pattern using:
- Avalonia UI - Cross-platform desktop framework
- CommunityToolkit.Mvvm - MVVM helpers and observable properties
- Lucene.Net 4.8.0 - Full-text search engine library
See CLAUDE.md for detailed architecture documentation.
This application was mostly vibe-coded using Claude Code.
Contributions are welcome! This project is a "spirit port" of Apache Lucene's Luke tool, modernized for .NET with Avalonia UI.
Please see CONTRIBUTING.md for guidelines.
This project is licensed under the GPL-3.0 License. See the LICENSE file for details.
- Inspired by Apache Lucene's Luke tool
- Built with Avalonia UI
- Powered by Lucene.NET
