是否可以使用特征向量查询Elastic Search?

海王星

我想将n维特征向量<1.00, 0.34, 0.22, ..., 0>与每个文档一起存储,然后提供另一个特征向量作为查询,其结果按余弦相似度排序。Elastic Search可以做到吗?

德巴斯

我没有特定于Elastic Search的答案,因为我从未使用过它(我使用构建了弹性搜索的Lucene)。但是,我正在尝试为您的问题提供一个通用的答案。给定查询向量,有两种获取最近向量的标准方法,如下所述。

Kd树

第一种方法是借助支持最近邻居查询的数据结构(例如kd树)将向量存储在内存中kd树是二叉查找树中的意义上的概括,所述的二叉查找树分区一个的每一个电平ķ尺寸分成两个部分。如果您有足够的空间来加载内存中的所有点,则可以在kd树上应用最近的邻居搜索算法,以获得按余弦相似度值排序的检索到的向量的列表。这种方法的明显缺点是,它无法像信息检索中经常遇到的那样扩展到大量的点集。

逆量化向量

第二种方法是使用反向量化矢量一个简单的基于范围的量化将伪项标记分配给矢量的实数,以便以后可以由Lucene对其进行索引(或就此而言为Elastic搜索)。

例如,我们可以将标签分配于范围[0,0.1) 到范围[0.1,0.2)等等...在你的问题的样本矢量随后被编码成(J,d,C, ..A)(因为[.9,1]是J,[0.3,0.4)是D,依此类推)。

因此,实数向量因此转换为字符串(可以视为文档),并因此使用标准信息检索(IR)工具进行索引。查询向量也被转换成一袋伪术语,因此可以计算集合中与当前最相似的其他一组相似向量(按余弦相似度或其他度量)。

该方法的主要优点是,它可以很好地扩展以用于大量实数向量集合。关键缺点在于,计算出的相似度值仅是真实余弦相似度的近似值(由于量化中遇到的损失)。较小的量化范围以增加索引大小为代价获得更好的性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Elastic Search 7中,是否可以使用上下文提示器来增强而不是过滤器?

来自分类Dev

使用Elastic Search Java API进行AND查询

来自分类Dev

我可以使用 Elastic Search Java API 按多个字段进行搜索吗?

来自分类Dev

AlaSQL 可以使用 DISTINCT 和 SEARCH

来自分类Dev

NEST 1.0是否可以与Elastic Search 0.x一起使用?

来自分类Dev

我可以在不依赖 Elastic Search 的 npm 的情况下使用 Elastic Search RESTful API

来自分类Dev

使用pandas或python创建特征向量

来自分类Dev

使用JUNG计算特征向量值

来自分类Dev

是否可以向Shopify / search url发送高级查询

来自分类Dev

将Elastic Search查询转换为Elastica

来自分类Dev

Elastic Search中的多“匹配短语”查询

来自分类Dev

将Mysql查询转换为Elastic Search

来自分类Dev

是否可以使用apply混合特征?

来自分类Dev

块状特征向量

来自分类Dev

Elastic search runtime metrics

来自分类Dev

Elastic search undefined?

来自分类Dev

使用LAPACK求解特征值错误的特征向量

来自分类Dev

Hibernate Search查询类

来自分类Dev

Hibernate Search查询类

来自分类Dev

Spectra的SymEigsShiftSolver是否不返回特征向量?

来自分类Dev

如何使用search:search计算构面?

来自分类Dev

使用Docker的Elastic Entreprise Search 7.9.0

来自分类Dev

使用curl在Elastic Search中删除类型

来自分类Dev

Elastic Search 是否支持多个索引之间的聚合查询?这是好习惯吗?

来自分类Dev

无法使用条款查询从ELASTIC SEARCH查询字母数字字段

来自分类Dev

是否可以使Liferay-ui:search-container行在Life ray中不可编辑?

来自分类Dev

使用矩阵*(矩阵')的特征向量计算svd

来自分类Dev

使用Sympy“手动”求解特征向量

来自分类Dev

使用矩阵*(矩阵')的特征向量计算svd

Related 相关文章

  1. 1

    在Elastic Search 7中,是否可以使用上下文提示器来增强而不是过滤器?

  2. 2

    使用Elastic Search Java API进行AND查询

  3. 3

    我可以使用 Elastic Search Java API 按多个字段进行搜索吗?

  4. 4

    AlaSQL 可以使用 DISTINCT 和 SEARCH

  5. 5

    NEST 1.0是否可以与Elastic Search 0.x一起使用?

  6. 6

    我可以在不依赖 Elastic Search 的 npm 的情况下使用 Elastic Search RESTful API

  7. 7

    使用pandas或python创建特征向量

  8. 8

    使用JUNG计算特征向量值

  9. 9

    是否可以向Shopify / search url发送高级查询

  10. 10

    将Elastic Search查询转换为Elastica

  11. 11

    Elastic Search中的多“匹配短语”查询

  12. 12

    将Mysql查询转换为Elastic Search

  13. 13

    是否可以使用apply混合特征?

  14. 14

    块状特征向量

  15. 15

    Elastic search runtime metrics

  16. 16

    Elastic search undefined?

  17. 17

    使用LAPACK求解特征值错误的特征向量

  18. 18

    Hibernate Search查询类

  19. 19

    Hibernate Search查询类

  20. 20

    Spectra的SymEigsShiftSolver是否不返回特征向量?

  21. 21

    如何使用search:search计算构面?

  22. 22

    使用Docker的Elastic Entreprise Search 7.9.0

  23. 23

    使用curl在Elastic Search中删除类型

  24. 24

    Elastic Search 是否支持多个索引之间的聚合查询?这是好习惯吗?

  25. 25

    无法使用条款查询从ELASTIC SEARCH查询字母数字字段

  26. 26

    是否可以使Liferay-ui:search-container行在Life ray中不可编辑?

  27. 27

    使用矩阵*(矩阵')的特征向量计算svd

  28. 28

    使用Sympy“手动”求解特征向量

  29. 29

    使用矩阵*(矩阵')的特征向量计算svd

热门标签

归档