我正在创建一个图像系统搜索(类似于谷歌的反向图像搜索),用于我公司内部使用的编目系统。我们已经成功使用Elasticsearch进行常规搜索功能,所以我是计划散列所有图像,为它们创建单独的索引,并使用它进行搜索。系统中有许多项目,每个项目可能有多个与之关联的图像,并且该项目应该能够通过反向图像搜索任何相关图像来查找。
我们想到了两种可能的架构:
为每个图像制作文档,仅包含图像的哈希值和与之相关的项目ID。这将导致大约约7百万个文档,但它们会很小,因为它们只包含一个哈希和一个ID。
为每个项目创建文档,并将与其关联的所有图像的哈希值存储在文档中的数组中。这将产生大约~10万个文档,但每个文档都相当大,有些项目有数百个图像与之关联。
这些架构中的哪一个会更高效?
答案 0 :(得分:0)
参加了Alexander Reelsen最近的Under the Hood演讲,他可能会说"它取决于"并且"对它进行基准测试"。
正如@Science_Fiction已暗示:
not_analyzed
字段中的术语。如果1.是低因素,我可能会先从你的第二种方法开始。