请问如何建立高维索引

qq_37130841 2018-01-27 07:51:52
就是我现在做一个图像检索的问题,以及提取出了图像特征,是如何在数据库内建立相应索引的。我提取出的特征都是二进制数,也是就是由01组成的一串数字。如何建立索引呢。
...全文
423 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack66wong 2018-01-31
  • 打赏
  • 举报
回复
学习一下。。。。。。。。。。。。。。。。。
OwenZeng_DBA 2018-01-28
  • 打赏
  • 举报
回复
对于图像应该有专门的数据库来处理,用关系数据库来处理不是特别适合
卖水果的net 2018-01-28
  • 打赏
  • 举报
回复
二进制的数据,你应该存储为 binary,这样的列是不能建立索引的,可以考虑取出内容的前N位,建立一个新的列,新列上建立索引。
qq_37130841 2018-01-28
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:
二进制的数据,你应该存储为 binary,这样的列是不能建立索引的,可以考虑取出内容的前N位,建立一个新的列,新列上建立索引。
恩。我列是设置为二进制的,好吧。。我试试看。感觉这种数字建立索引对于检索没太多帮助
qq_37130841 2018-01-28
  • 打赏
  • 举报
回复
引用 2 楼 yenange 的回复:
如果长度不大, 可以建立索引。 但这种索引还真没试验过, 具体有没有用, 你自己建立了试下有没有改善吧
长度是64维的,而且一个图片是由至少5个64维的01特征分别描述。不知道如何建立索引
吉普赛的歌 2018-01-27
  • 打赏
  • 举报
回复
如果长度不大, 可以建立索引。 但这种索引还真没试验过, 具体有没有用, 你自己建立了试下有没有改善吧
吉普赛的歌 2018-01-27
  • 打赏
  • 举报
回复
USE tempdb
GO
IF OBJECT_ID('t') IS NOT NULL
DROP TABLE t
GO
CREATE TABLE t(
	v VARBINARY(50),
	v2 VARBINARY(MAX)
)
BEGIN TRY
	CREATE INDEX ix_t_v ON t(v)
	PRINT '1. ix_t_v has created'
END TRY
BEGIN CATCH
	PRINT ERROR_MESSAGE()
END CATCH

BEGIN TRY
	CREATE INDEX ix_t_v2 ON t(v2)
	PRINT '2. ix_t_v2 has created'
END TRY
BEGIN CATCH
	PRINT ERROR_MESSAGE()
END CATCH
/*
1. ix_t_v has created
表 't' 中的列 'v2' 的类型不能用作索引中的键列。
*/

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧