Join us for a virtual meetup on Zoom at 8 PM, July 31 (PDT) about using One Time Series Database for Both Metrics and Logs 👉🏻 Register Now

Skip to content

Full-Text Search and Log Analytics - Beyond Simple Grep

GreptimeDB v0.14 enhances log analysis with advanced full-text search capabilities, introducing two specialized index backends (Bloom Filter and Tantivy) for optimized performance in different scenarios, along with precise phrase matching via the matches_term function and @@ operator.
Full-Text Search and Log Analytics - Beyond Simple Grep

The Log Analysis Challenge

Every application generates logs. Web servers, databases, microservices - they all leave digital breadcrumbs. But when things go wrong, finding relevant information feels like searching for a needle in a haystack.

Traditional log analysis relies on basic pattern matching. That works for simple cases, but modern applications generate complex, semi-structured logs that need smarter search capabilities.

GreptimeDB's Full-Text Search Evolution

Version 0.14 brought significant improvements to full-text indexing. Now you have two backend options optimized for different use cases:

Bloom Filter Backend

  • Efficient filtering for general log search
  • Low storage overhead (1GB index for 10GB data)
  • Stable performance across query patterns
  • Best for: Regular log analysis workflows

Tantivy Backend

  • Inverted indexes for high-selectivity queries
  • 5x faster for unique identifier searches
  • Higher storage costs (index size ~= data size)
  • Best for: TraceID and specific value lookups

The New matches_term Function

Exact phrase matching becomes crucial for log analysis. The new @@ operator and matches_term function enable:

sql
SELECT * FROM logs WHERE message @@ 'connection timeout';
-- Or using the full function
SELECT * FROM logs WHERE matches_term(message, 'error');

This case-sensitive matching respects word boundaries, making it perfect for structured log parsing.

Performance Comparison Insights

Our benchmarks reveal interesting patterns:

Query TypeHigh SelectivityLow Selectivity
Bloom1x (baseline)1x (baseline)
Tantivy5x faster5x slower
Like Query50x slower1x

Choose your backend based on actual query patterns, not just peak performance numbers.

Storage vs. Performance Trade-offs

Full-text indexing isn't free. Consider these factors:

  • Index storage requirements
  • Write performance impact
  • Query latency expectations
  • Cost sensitivity for your deployment

GreptimeDB's flexible approach lets you optimize per table based on specific requirements.

Best Practices for Log Analytics

Effective log search implementation:

  • Structure logs when possible for better compression
  • Use appropriate index backends for your query patterns
  • Monitor index size growth
  • Consider retention policies for historical data

Start with GreptimeDB's log analytics features to streamline your troubleshooting workflows.


About Greptime

GreptimeDB is an open-source, cloud-native database purpose-built for real-time observability. Built in Rust and optimized for cloud-native environments, it provides unified storage and processing for metrics, logs, and traces—delivering sub-second insights from edge to cloud —at any scale.

  • GreptimeDB OSS – The open-sourced database for small to medium-scale observability and IoT use cases, ideal for personal projects or dev/test environments.

  • GreptimeDB Enterprise – A robust observability database with enhanced security, high availability, and enterprise-grade support.

  • GreptimeCloud – A fully managed, serverless DBaaS with elastic scaling and zero operational overhead. Built for teams that need speed, flexibility, and ease of use out of the box.

🚀 We’re open to contributors—get started with issues labeled good first issue and connect with our community.

GitHub | 🌐 Website | 📚 Docs

💬 Slack | 🐦 Twitter | 💼 LinkedIn


Join our community

Get the latest updates and discuss with other users.