qdrant_vector_search

package module
v0.0.0-...-27f129f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: Apache-2.0 Imports: 15 Imported by: 0

README

This plugin enables semantic/vector search in Apache Answer using Qdrant.

Prerequisites

  • Qdrant instance (self-hosted or Qdrant Cloud)
  • An OpenAI-compatible embedding API (e.g., OpenAI, Azure OpenAI, or any compatible provider)

Installation

Build Apache Answer with this plugin:

./answer build --with github.com/apache/answer-plugins/vector-search-qdrant

Configuration

After enabling the plugin in the Admin UI (Admin > Plugins > Vector Search), configure the following fields:

Field Description Example
Qdrant Endpoint Qdrant gRPC endpoint localhost:6334
Qdrant API Key API key for Qdrant authentication (optional for local instances)
Embedding API Host OpenAI-compatible API base URL https://api.openai.com
Embedding API Key API key for the embedding service sk-...
Embedding Model Model name for generating embeddings text-embedding-3-small
Embedding Level question embeds question + all answers + comments together; answer embeds each answer separately question
Similarity Threshold Minimum cosine similarity score (0-1). Default 0 means no filtering 0.5

Note: This plugin uses a dual API key pattern -- one for Qdrant authentication and a separate one for the embedding API.

How It Works

  • Embedding dimensions are auto-detected from the configured model. No manual dimension configuration is needed.
  • On first configuration, the plugin creates a collection answer_vector_embeddings with cosine distance metric.
  • If the embedding model changes and produces different dimensions, the collection is automatically deleted and recreated.
  • Uses deterministic UUIDs derived from object IDs for consistent upsert behavior.
  • Communicates with Qdrant via gRPC for high performance.
  • A full sync of all questions/answers is triggered when the plugin starts.

Running Qdrant Locally

Using Docker:

docker run -p 6333:6333 -p 6334:6334 qdrant/qdrant

The gRPC endpoint will be localhost:6334 and the REST API at localhost:6333.

License

Apache License 2.0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Info embed.FS

Functions

This section is empty.

Types

type VectorSearchConfig

type VectorSearchConfig struct {
	Endpoint            string  `json:"endpoint"`
	APIKey              string  `json:"api_key"`
	EmbeddingAPIHost    string  `json:"embedding_api_host"`
	EmbeddingAPIKey     string  `json:"embedding_api_key"`
	EmbeddingModel      string  `json:"embedding_model"`
	EmbeddingLevel      string  `json:"embedding_level"`
	SimilarityThreshold float64 `json:"similarity_threshold"`
}

VectorSearchConfig holds all plugin configuration.

type VectorSearchEngine

type VectorSearchEngine struct {
	Config *VectorSearchConfig
	// contains filtered or unexported fields
}

VectorSearchEngine implements plugin.VectorSearch using Qdrant.

func (*VectorSearchEngine) ConfigFields

func (e *VectorSearchEngine) ConfigFields() []plugin.ConfigField

func (*VectorSearchEngine) ConfigReceiver

func (e *VectorSearchEngine) ConfigReceiver(config []byte) error

func (*VectorSearchEngine) DeleteContent

func (e *VectorSearchEngine) DeleteContent(ctx context.Context, objectID string) error

func (*VectorSearchEngine) Description

func (e *VectorSearchEngine) Description() plugin.VectorSearchDesc

func (*VectorSearchEngine) Info

func (e *VectorSearchEngine) Info() plugin.Info

func (*VectorSearchEngine) RegisterSyncer

func (e *VectorSearchEngine) RegisterSyncer(ctx context.Context, syncer plugin.VectorSearchSyncer)

func (*VectorSearchEngine) SearchSimilar

func (e *VectorSearchEngine) SearchSimilar(ctx context.Context, query string, topK int) ([]plugin.VectorSearchResult, error)

func (*VectorSearchEngine) UpdateContent

func (e *VectorSearchEngine) UpdateContent(ctx context.Context, content *plugin.VectorSearchContent) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL