This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/hop-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 7d255f8a99 Website updated to 45a48e9
7d255f8a99 is described below
commit 7d255f8a9945b460d783b33ab657a63899d4a84c
Author: jenkins <[email protected]>
AuthorDate: Thu Sep 17 07:43:29 2026 +0000
Website updated to 45a48e9
---
dev-manual/next/value-types.html | 6 +--
manual/next/concepts.html | 50 +++++++++++++++++++++++
manual/next/snippets/hop-concepts/data-types.html | 50 +++++++++++++++++++++++
3 files changed, 103 insertions(+), 3 deletions(-)
diff --git a/dev-manual/next/value-types.html b/dev-manual/next/value-types.html
index 859e537dc1..611f632549 100644
--- a/dev-manual/next/value-types.html
+++ b/dev-manual/next/value-types.html
@@ -530,8 +530,8 @@
The built-in set is small — string, integer, number, big number, date,
timestamp, boolean, binary — and it is extensible.</p>
</div>
<div class="paragraph">
-<p><code>UUID</code> and <code>JSON</code> are value types.
-A geometry type, a vector type or a money type would be too.</p>
+<p><code>UUID</code>, <code>JSON</code> and <code>Vector</code> are value
types.
+A geometry type or a money type would be too.</p>
</div>
</div>
</div>
@@ -601,7 +601,7 @@ Reach for the simpler option first.</p>
<td class="content">
<div class="paragraph">
<p>Type ids are plain integers and there is no allocation registry.
-The built-in types use low numbers and the shipped plugins use <code>20</code>
for Avro and <code>32</code> for UUID.</p>
+The built-in types use low numbers and the shipped plugins use <code>20</code>
for Avro, <code>32</code> for UUID, <code>303</code> for the Neo4j Graph type
and <code>1536</code> for Vector.</p>
</div>
<div class="paragraph">
<p>Two plugins that pick the same id will collide, and the failure will not be
obvious.
diff --git a/manual/next/concepts.html b/manual/next/concepts.html
index d375e8ca17..b18823ee72 100644
--- a/manual/next/concepts.html
+++ b/manual/next/concepts.html
@@ -3119,6 +3119,56 @@ Keys are sorted alphabetically, and values are compared
in the following type or
Values that are part of MongoDB’s extended JSON (for example, Date objects)
are not supported.
To fully support MongoDB-specific BSON values, use the String type instead.</p>
</div>
+</div>
+<div class="sect2">
+<h3 id="_vector"><a class="link" href="#_vector">Vector</a></h3>
+<div class="paragraph">
+<p>The Vector type holds a dense floating point vector, as produced by an
embedding model and consumed by a vector store.
+Values are stored as a <code>float[]</code>.</p>
+</div>
+<div class="paragraph">
+<p>The canonical text form is a bracketed, comma separated list of numbers:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none
hljs">[0.1,0.2,0.3]</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>That form is both valid JSON and the literal syntax pgvector accepts, so a
vector survives a round trip through a text file, a Data Grid, a JSON document
or a database column without a conversion step in between.</p>
+</div>
+<div class="paragraph">
+<p><strong>Conversions</strong></p>
+</div>
+<div class="paragraph">
+<p>Vector converts to and from String using the canonical text form above.
+Conversion from other types is not supported: convert to String first if an
intermediate type is involved.</p>
+</div>
+<div class="paragraph">
+<p><strong>Databases</strong></p>
+</div>
+<div class="paragraph">
+<p>Hop binds a vector to a prepared statement using its text form, which a
PostgreSQL <code>vector</code> column (provided by the pgvector extension)
accepts directly.
+No dialect currently emits a native vector column type when Hop generates DDL,
so a generated <code>CREATE TABLE</code> produces a text column that has to be
adjusted by hand.</p>
+</div>
+<div class="paragraph">
+<p><strong>Dimensions</strong></p>
+</div>
+<div class="paragraph">
+<p>The field’s <code>length</code> carries the number of dimensions, the
way it carries the size of a String.
+A length of zero or less means the dimension is unspecified.</p>
+</div>
+<div class="paragraph">
+<p>Hop never pads or truncates a vector to match a declared length.
+An embedding resized to fit would still return results from a vector store,
and those results would be wrong, so a mismatch is left for the store to
reject.</p>
+</div>
+<div class="paragraph">
+<p><strong>Gotchas</strong></p>
+</div>
+<div class="paragraph">
+<p>The type does not itself enforce the number of dimensions.
+A vector store will reject a value whose length does not match the column it
is written to, so the dimensions of the embedding model and of the target
column have to be kept aligned by the pipeline author.</p>
+</div>
<div class="paragraph">
<p><a href="pipeline/formatting-values.html" class="xref page">Formatting
numbers and dates</a> describes Format, Length, Precision, Decimal, Group and
Currency — the field metadata used whenever Hop converts a value to or from a
String.</p>
</div>
diff --git a/manual/next/snippets/hop-concepts/data-types.html
b/manual/next/snippets/hop-concepts/data-types.html
index 590d829d86..f6d0d78817 100644
--- a/manual/next/snippets/hop-concepts/data-types.html
+++ b/manual/next/snippets/hop-concepts/data-types.html
@@ -2947,6 +2947,56 @@ Values that are part of MongoDB’s extended JSON (for
example, Date objects) ar
To fully support MongoDB-specific BSON values, use the String type instead.</p>
</div>
</div>
+<div class="sect2">
+<h3 id="_vector"><a class="link" href="#_vector">Vector</a></h3>
+<div class="paragraph">
+<p>The Vector type holds a dense floating point vector, as produced by an
embedding model and consumed by a vector store.
+Values are stored as a <code>float[]</code>.</p>
+</div>
+<div class="paragraph">
+<p>The canonical text form is a bracketed, comma separated list of numbers:</p>
+</div>
+<div class="listingblock">
+<div class="content">
+<pre class="highlightjs highlight"><code class="language-none
hljs">[0.1,0.2,0.3]</code></pre>
+</div>
+</div>
+<div class="paragraph">
+<p>That form is both valid JSON and the literal syntax pgvector accepts, so a
vector survives a round trip through a text file, a Data Grid, a JSON document
or a database column without a conversion step in between.</p>
+</div>
+<div class="paragraph">
+<p><strong>Conversions</strong></p>
+</div>
+<div class="paragraph">
+<p>Vector converts to and from String using the canonical text form above.
+Conversion from other types is not supported: convert to String first if an
intermediate type is involved.</p>
+</div>
+<div class="paragraph">
+<p><strong>Databases</strong></p>
+</div>
+<div class="paragraph">
+<p>Hop binds a vector to a prepared statement using its text form, which a
PostgreSQL <code>vector</code> column (provided by the pgvector extension)
accepts directly.
+No dialect currently emits a native vector column type when Hop generates DDL,
so a generated <code>CREATE TABLE</code> produces a text column that has to be
adjusted by hand.</p>
+</div>
+<div class="paragraph">
+<p><strong>Dimensions</strong></p>
+</div>
+<div class="paragraph">
+<p>The field’s <code>length</code> carries the number of dimensions, the
way it carries the size of a String.
+A length of zero or less means the dimension is unspecified.</p>
+</div>
+<div class="paragraph">
+<p>Hop never pads or truncates a vector to match a declared length.
+An embedding resized to fit would still return results from a vector store,
and those results would be wrong, so a mismatch is left for the store to
reject.</p>
+</div>
+<div class="paragraph">
+<p><strong>Gotchas</strong></p>
+</div>
+<div class="paragraph">
+<p>The type does not itself enforce the number of dimensions.
+A vector store will reject a value whose length does not match the column it
is written to, so the dimensions of the embedding model and of the target
column have to be kept aligned by the pipeline author.</p>
+</div>
+</div>
</div>
</div>
</article>