这是空间搜索的一个反向概念,候选人决定他可以工作的距离。
我有一个候选人c1说他可以在距他所在地20英里的地方工作,而c2说他可以在离他所在地10英里的地方工作。如果我的搜索位置距离两个候选人都是10英里,我的结果应该列出候选人的距离并按距离排序。
我的想法是从搜索点到候选点获取距离,并检查距离是否符合每个候选人配置的里程。
我使用了q = {!func} geodist()和sort = score asc,现在我需要根据他的文档中配置的Miles进行过滤。 得分< = Miles应该用作过滤器。
你能帮助我解决它吗,这对我来说是一个很大的帮助。谢谢。
答案 0 :(得分:0)
您需要为候选人编制索引,而不是使用某个点,而是使用圆圈(中心是他们的位置,半径是他们愿意旅行的距离)。
然后你用一个与任何圆相交的点来fq。请查看此问题中的详细信息:Solr spatial search using an indexed field for radius?