The Lucene Search Extension 3.0.0.165-SNAPSHOT is now available for testing, with custom vector embedding support and Lucee 6.2 compatibility fixes.
Quick Primer: Vector Search & RAG
Traditional cfsearch matches keywords — if you search for “pet”, it won’t find documents about “cat” or “dog” unless those exact words appear. Vector search converts text into numerical vectors (embeddings) that capture meaning, so “pet” finds documents about cats and dogs because they’re semantically close.
This is the foundation of RAG (Retrieval-Augmented Generation) — feed your AI relevant context from your own data instead of relying solely on the model’s training. The flow is:
- Index your documents into a vector collection
- User asks a question → vector search finds the most relevant passages
- Pass those passages as context to an AI session → grounded, accurate answers
The Lucene extension supports this end-to-end with mode="vector" or mode="hybrid" (combines keyword + vector for best of both), plus contextpassages on cfsearch to extract the most relevant chunks. See the AI recipe for the full RAG pattern.
LDEV-6183 — File Path as Embedding Attribute (Lucee 7.0 only)
What was happening: Using word2vec embeddings required placing GloVe vector files in {lucee-server}/context/search/embedding/. There was no way to specify a custom path, making testing and custom deployments awkward.
What changed:
- The
embeddingattribute oncfcollectionnow accepts a file path directly:
collection action="Create"
collection="my_docs"
path=expandPath( "{lucee-config-dir}/collections/docs" )
mode="vector"
embedding="/data/models/glove.6B.50d.txt";
- Any value containing
/or\is detected as a file path and loaded using the word2vec embedding service - Existing values (
TF-IDF,word2vec, class names) continue to work unchanged
LDEV-6182 — Lucee 6.2 Compatibility
What was happening: Extension 3.0.0.163 called Cast.fromJsonStringToStruct() / Cast.fromStructToJsonString() which only exist in Lucee 7’s loader API. Installing on Lucee 6.2 caused a NoSuchMethodError on any admin page that initialises the search engine.
What changed:
- JSON serialisation now uses a
JsonUtilhelper that falls back to BIF-based JSON functions when the Cast API methods are unavailable - Build now compiles against the stable Lucee 7.0.2.106 loader API
- CI tests against both Lucee 6.2 and 7.0 (stable + snapshot, JDK 11 + 21)
Docs
Breaking Changes
None. Fully backward compatible.
Feedback
Please test and report any issues here on the forum.