我想使用 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 核心时,我们可能会从默认模式开始,并根据需要进行调整。在此默认模式中,已经定义了几个
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 :