weaviate_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: 19 Imported by: 0

README

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

Prerequisites

  • Weaviate instance (self-hosted or Weaviate 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-weaviate

Configuration

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

Field Description Example
Weaviate Endpoint Weaviate server URL http://localhost:8080
Weaviate API Key API key for Weaviate 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 Weaviate authentication and a separate one for the embedding API.

How It Works

  • Weaviate handles vector dimensions automatically via its vectorizer: none configuration, so no manual dimension setup is needed.
  • On first configuration, the plugin creates a class AnswerVector with cosine distance metric.
  • Uses deterministic UUIDs derived from object IDs for consistent upsert behavior.
  • A full sync of all questions/answers is triggered when the plugin starts.

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 Weaviate.

func (*VectorSearchEngine) ConfigFields

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

ConfigFields returns the plugin configuration form fields.

func (*VectorSearchEngine) ConfigReceiver

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

ConfigReceiver applies configuration from the admin UI.

func (*VectorSearchEngine) DeleteContent

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

DeleteContent removes a document by object ID.

func (*VectorSearchEngine) Description

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

Description returns metadata about this vector search engine.

func (*VectorSearchEngine) Info

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

func (*VectorSearchEngine) RegisterSyncer

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

RegisterSyncer stores the syncer and triggers a full sync.

func (*VectorSearchEngine) SearchSimilar

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

SearchSimilar performs a nearVector search in Weaviate.

func (*VectorSearchEngine) UpdateContent

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

UpdateContent upserts a single document into Weaviate.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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