gpt4 book ai didi

php - 我应该怎么做,自己创建一个搜索引擎还是使用另一个?

转载 作者:太空宇宙 更新时间:2023-11-04 13:44:57 24 4
gpt4 key购买 nike

我有这个分类网站,现在我一直在寻找实现分类搜索功能的方法。

我想知道,是否有任何您知道的用 PHP 创建非常强大的搜索引擎的教程?

看了第三方搜索引擎,感觉太多了...

PS:我的服务器不支持全文。

谢谢

最佳答案

老实说,我建议使用 Zend_Lucene , 虽然一开始看起来很困惑,但一旦你掌握了它,它就非常容易使用。虽然索引很慢,但搜索速度非常快。

如果你想编写一个快速而强大的搜索引擎,你不会在教程中找到实现,你最好做一些研究并阅读有关该主题的论文。换句话说,如果不进行大量研究和努力工作,您将无法用 PHP 编写任何东西来与 Zend Lucene 竞争。

文档非常非常好,我已经在一个没有基于 zend 框架的项目中实现了 Zend Lucene。它只需要花半小时阅读和消化文档,再花半小时编写一组快速测试来检查您的假设是否正确。

要创建一个带有汽车 ID 的文档并制作:

//if it hasn't been created, you need to use ::create rather than ::open
$index = Zend_Search_Lucene::open('/data/my-index');

$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('Car', 'MyCar'));
$doc->addField(Zend_Search_Lucene_Field::Text('Make', 'BMW'));

$index->addDocument($doc);

寻找汽车的方法:

$index = Zend_Search_Lucene::open('/data/my-index');
$result = $index->find('Car:MyCar');

foreach ( $result as $hit ){
echo $hit->Make;
}

缺点是Zend_Lucene不是存储引擎,它不对存储做任何保证,所以虽然你可以用它来存储记录,但使用合适的数据库会是更好的选择。这是我遇到的问题之一,你只需要保持搜索索引和数据库同步。我发现最好的方法就是创建一个包装类,在数据库和索引上调用添加/删除。

关于php - 我应该怎么做,自己创建一个搜索引擎还是使用另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1933035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com