正如我所见,您已经熟悉 solr 提供的地理位置过滤器。
那么你的问题是什么?您在索引数据时是否已经提供了地理位置?
如果不是,您应该考虑使用 API 为您提供给定地址的地理位置,以便您可以将其与其他数据一起索引。
看这里
然后在搜索时获取当前访问您网站的人的位置,请查看:HTML5 Location。作为故障转移,您可以使用以下 IP 解析 API 来获取人员的大致位置:IP Resolver(如果您稍微搜索一下网络,您还可以使用其他 API)
我希望这回答了你的问题。
编辑:在你上一篇文章之后。
正如我之前所说,您使用 HTML5 位置获取位置。
首先,您可以在 html 表单中添加两个隐藏字段(我使用 jquery 语法):
//The form you use for the submission of your search query
<form action="search.php" method="post">
//Here are your form elements below are the hidden fields.
<input type="hidden" name="long" value=""/>
<input type="hidden" name="lat" value=""/>
</form>
<script type="text/javascript">
//Getting the location once the page finished loading
$( document ).ready(
function()
{
if (navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
});
//Location callback. We set the long and lat values of the hidden fields.
function showPosition(position)
{
$('[name="lat"]').val(position.coords.latitude);
$('[name="long"]').val(position.coords.longitude);
}
</script>
现在表单已提交,我们需要访问我们在隐藏字段中设置的值。
//The form was submitted so in your form submission handling code:
$long = $_POST["long"];
$lat= $_POST["lat"];
//Now you have your variables. You can now put them inside your query
//DO your query
希望这可以帮助。