我知道如何使用查询字符串查询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或空字符串,则它不起作用。
感谢。
答案 0 :(得分:3)
如果要获取距离点一定距离内的所有文档,则需要发出与所有文档匹配的查询,并在计算距离的评分函数上使用函数过滤器。
例如,如果您的所有文档都有一个“匹配”字段,其值为“全部”,则可以搜索:
results = index.search(Query.forString("match:all")
.withScoringFunction(5)
.withQueryVariable(0, latitude)
.withQueryVariable(1, longitude)
.withFunctionFilter(5, 0, 10));
这将获得10英里(纬度,长度)内的所有文件。