solr 通过curl POST 请求创建密集向量场

问题描述 投票:0回答:1

我想使用 solr 中的新功能,即 DensevectorField,但我看不到任何可以通过curl 发布架构来创建此字段类型的示例。

通常情况下,我会这样做:

curl -s -X POST -H 'Content-type:application/json' --data-binary '{"add-field": {"name":"some_field", "type":"text_general", "multiValued":false, "stored":true, "indexed":true, "termVectors":true }}' "http://localhost:8984/solr/$core_name/schema"

我想知道

type
而不是
DensevectorField
的等效
text_general
是什么。

我看到他们手动编辑架构的示例 - 包括文档中的架构,但我想通过

curl POST
请求创建此架构。

但是我无法在文档中的任何地方找到这个..

solr
1个回答
0
投票

创建 Solr 核心时,我们可能会从默认模式开始,并根据需要进行调整。在此默认模式中,已经定义了几个

field
fieldType
定义,以便我们可以快速充分利用 Solr,而无需太多麻烦(请参阅 Solr 9.0.0 中的 默认字段类型)。

尽管如此,并未涵盖所有用例(它仅包括基础知识,否则模式会变得太大)。在像您这样的特定情况下,实现神经搜索,您不仅必须定义使用

solr.DenseVectorField
的字段,还必须定义提供它的
fieldType
。例如:

<fieldType name="knn_vector" class="solr.DenseVectorField" vectorDimension="4" similarityFunction="cosine" knnAlgorithm="hnsw" hnswMaxConnections="10" hnswBeamWidth="40"/>
<field name="vector" type="knn_vector" indexed="true" stored="true"/>

现在,要使用 Schema API 在托管架构上执行此操作, 这相当于执行以下请求:

curl -X POST -H 'Content-type:application/json' --data-binary '{
    "add-field-type":{
        "name":"knn_vector",
        "class":"solr.DenseVectorField",
        "vectorDimension":"4",
        "similarityFunction":"cosine",
        "knnAlgorithm":"hnsw",
        "hnswMaxConnections":"10",
        "hnswBeamWidth":"40"
    },
    "add-field":{
        "name":"vector",
        "type":"knn_vector",
        "indexed":true,
        "stored":true 
    }
}' "http://localhost:8984/solr/$core_name/schema"

参见架构 API :

© www.soinside.com 2019 - 2024. All rights reserved.