Postgresql PostGIS立方体距离限制

Postgresql PostGIS立方体距离限制,postgresql,postgis,Postgresql,Postgis,我正在使用此查询运行一些测试: SELECT recipe_id, macros, cube_distance (macros, CUBE (ARRAY [68, 78, 39])) AS distance FROM indexable_recipes ORDER BY distance LIMIT 50; 这很好,为了得到50个最好的匹配。然而,我真正需要的是选择所有记录,其最大距离为X,例如10 此外,我还需要按DISTINCTrec

我正在使用此查询运行一些测试:

SELECT
    recipe_id,
    macros,
    cube_distance (macros,
        CUBE (ARRAY [68, 78, 39])) AS distance
FROM
    indexable_recipes
ORDER BY
    distance
LIMIT 50;
这很好,为了得到50个最好的匹配。然而,我真正需要的是选择所有记录,其最大距离为X,例如10

此外,我还需要按DISTINCTrecipe_id选择匹配项

你是怎么做到的?我已经找到了各种距离函数,比如ST_distance,但似乎无法让它们中的任何一个用于立方体对象,因为据我所知,这些函数不需要使用点


我正在运行PostgreSQL v10。

你好。你能提供一些样本数据吗?此外,如果可能的话,添加预期结果:CheesPostGIS和Cube是不同的东西。您实际使用的是哪一个?我当前使用的是:选择DISTINCT ON IR.recipe\u id R.id、distance、R.name FROM SELECT recipe\u id、cube\u distance IR.macros、多维数据集数组[40,40,20]作为与可转位_配方的距离_test AS IR AS IR in JOIN recipes AS R ON IR.recipe_id=R.id,其中距离<10,在200ms内执行400k结果,查找最大距离为10的所有不同匹配,并加入配方以获得配方详细信息。不知道这是不是最快的方法。你能提供一些样本数据吗?此外,如果可能的话,添加预期结果:CheesPostGIS和Cube是不同的东西。您实际使用的是哪一个?我当前使用的是:选择DISTINCT ON IR.recipe\u id R.id、distance、R.name FROM SELECT recipe\u id、cube\u distance IR.macros、多维数据集数组[40,40,20]作为与可转位_配方的距离_test AS IR AS IR in JOIN recipes AS R ON IR.recipe_id=R.id,其中距离<10,在200ms内执行400k结果,查找最大距离为10的所有不同匹配,并加入配方以获得配方详细信息。不确定这是否是最快的方法。