首页 > 解决方案 > 如何使用地理空间搜索在 solr 中索引 d 维向量?

问题描述

我正在尝试为 solr 创建一个可以索引 3d 模型的插件。我将从几个不同的视图中对每个模型进行“截图”并预处理这些图像,以便它们以一维向量表示。

我想为此目的使用 lucene/solr 地理空间搜索,因为我看到有一个选项可以索引一个向量(大于 2 个维度)并根据向量的距离进行搜索(根据位置)。

不幸的是,这个选项的文档上周消失了,并且没有缓存在谷歌中。

如何索引维度 > 2 的位置向量?

文档的链接在这里: https ://wiki.apache.org/solr

我从这里找到了它: https ://lucene.apache.org/solr/guide/6_6/spatial-search.html#SpatialSearch-LatLonPointSpatialField

标签: searchsolrlucene3d-model

解决方案


地理空间搜索旨在使用 n 维点 (Lucene),但似乎无法使用高于 2d 的尺寸的 Solr 实现。

如果您为每个字段索引一维向量/坐标(使用双字段类型),您仍然可以使用 Solr 进行 3d 空间搜索。

然后,为了按与给定点的距离查询和排序文档geodist(sfield2D,x,y),您可以使用dist()

返回 n 维空间中两个向量(点)之间的距离。获取幂,加上两个或更多 ValueSource 实例并计算两个向量之间的距离。

要计算任意点 (0,0,0) 和每个文档的索引点之间的欧几里德距离,您可以使用:

dist(2, fieldx, fieldy, fieldz, 0, 0, 0) 

另请参阅:
-计算 3D 空间中的
距离 -距离排序或提升(函数查询)
-地理空间搜索的 geodist() 和 dist() 之间的区别


推荐阅读