我知道如何使用查询字符串查询IndexTank,不管有没有地理位置。但是,如何在没有查询字符串和只有地理位置的情况下进行查询呢?
index.addFunction(5, "-miles(d[0], d[1], q[0], q[1])");
results = index.search(Query.forString(queryString)
.withScoringFunction(5)
.withQueryVariable(0, latitude)
.withQueryVariable(1, longitude));如果queryString为null或空字符串,则不起作用。
谢谢。
发布于 2011-04-23 22:05:32
如果您想获取距离某个点一定距离内的所有文档,则需要发出一个匹配所有文档的查询,并在计算距离的评分函数上使用一个函数过滤器。
例如,如果您的所有文档都有一个值为" all“的"match”字段,则可以搜索:
results = index.search(Query.forString("match:all")
.withScoringFunction(5)
.withQueryVariable(0, latitude)
.withQueryVariable(1, longitude)
.withFunctionFilter(5, 0, 10));这将获取10英里(经度、长度)范围内的所有文档。
https://stackoverflow.com/questions/5763043
复制相似问题