I have about 10^4 points in 7 dimensional space. For a certain application, I need to make ~10^6 range queries on this input to find all the points that lie inside a given range. In this application, all the queries use the same range size. What is the appropriate data structure for this problem?
kd-tree seems apt, but for 7 dimensions and small output size it is almost linear in time complexity for queries. Another solution is range trees, but it seems too complex to construct for the small number of input in this application. Also, I don't see any of these structures using the fact that the range is constant size to their advantage. For example, if this were a 1D problem, the queries would all be asking for points lying inside a range of size 10 for example, at different places along the number line.