Skip to main content

Search

Dendrite provides powerful semantic search that understands the meaning of your code, not just keywords. Search by concept, not just text:
# Find code related to authentication
results = BrainzLab::Dendrite.search("user login flow")

# Find payment processing logic
results = BrainzLab::Dendrite.search("handle credit card payment")

# Find error handling
results = BrainzLab::Dendrite.search("how errors are rescued")

How It Works

Search Query


Generate Embedding (same model as indexing)


Vector Similarity Search (pgvector)


Ranked Results by Relevance
Dendrite uses the same embedding model for queries that it uses for indexing, ensuring accurate semantic matching.

Search Results

results = BrainzLab::Dendrite.search("authentication")

results.each do |result|
  puts result.file_path      # => "app/controllers/sessions_controller.rb"
  puts result.chunk          # => "def create\n  user = User.find_by..."
  puts result.relevance      # => 0.92
  puts result.line_start     # => 15
  puts result.line_end       # => 28
  puts result.summary        # => "Session creation with password verification"
end

Search Options

Filter by File Type

results = BrainzLab::Dendrite.search("validation",
  file_types: [:model, :concern]
)

Filter by Path

results = BrainzLab::Dendrite.search("API endpoint",
  paths: ["app/controllers/api/**"]
)

Limit Results

results = BrainzLab::Dendrite.search("authentication",
  limit: 10
)

Minimum Relevance

results = BrainzLab::Dendrite.search("payment",
  min_relevance: 0.8
)

Code Navigation

From search results, navigate directly to code:
result = results.first

# Open in editor (VS Code)
result.open_in_editor

# Get GitHub link
result.github_url
# => "https://github.com/acme/api/blob/main/app/models/user.rb#L15-L28"

# Get full file context
context = result.file_context(lines_before: 5, lines_after: 5)
Find code related to a specific file or function:
# Find code similar to a file
related = BrainzLab::Dendrite.find_related(
  file: "app/services/payment_service.rb"
)

# Find code similar to a function
related = BrainzLab::Dendrite.find_related(
  file: "app/models/user.rb",
  function: "authenticate"
)

Search Analytics

Track what your team searches for:
analytics = BrainzLab::Dendrite.search_analytics(period: :week)

analytics.top_queries.each do |query, count|
  puts "#{query}: #{count} searches"
end

analytics.queries_without_results.each do |query|
  puts "No results for: #{query}"
end