Zend Lucene的条件

时间:2011-11-16 17:17:56

标签: php zend-framework zend-lucene

我们公司有基于位置的服务。可以通过移动设备精确搜索内容以获取用户的位置。此搜索包括使用以下公式的距离搜索

((ACOS(SIN($lat * PI() / 180) * SIN(lat * PI() / 180) + COS($lat * PI() / 180) * COS(lat * PI() / 180) * COS(($lon – lon) * PI() / 180)) * 180 / PI()) * 60 * 1.1515)

还有一些关于标题,类别,描述的文字搜索。

我们的数据库中有数百万条记录,我们无法根据需要对其进行优化。然后我们决定给Zend Lucene搜索一个镜头。像这样索引lat和lang后,

$doc->addField(Zend_Search_Lucene_Field::UnIndexed('lat', '-0.502123');
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('lng', '1.502123');
$doc->addField(Zend_Search_Lucene_Field::Text('title', 'This is a title');
$doc->addField(Zend_Search_Lucene_Field::Text('desc', 'this is a description');

如何在lat和lng的UnIndexed Lucene_Field上查询距离公式?可能吗?或者有什么工作吗?

谢谢你, KARTHIK

2 个答案:

答案 0 :(得分:1)

无法查询未编制索引的数据。仅存储未编制索引的数据。

如果要搜索(查询)lat和long,则应将其设置为索引数据。

参见Zend_Search_Lucene_Field Types

列表

同样在此链接中,您可以获得Zend_Search_Lucene

的简单教程

答案 1 :(得分:0)

我有同样的问题,但另一个答案对我没有帮助。所以我发现了这个很棒的教程。我希望它能帮助像我这样的人。 http://develop.nydi.ch/2010/10/lucene-spatial-example/