我已经研究过Doctrine的内置搜索,MySQL myisam全文搜索,Zend_Lucene和sphinx--但是所有的细微差别和实现细节让我难以理解,因为我没有经验除了myisam搜索之外的任何其他内容。
我真正想要的是一些简单易用的Zend Framework和Doctrine(MySQL后端,可能是InnoDB)。我不需要像单词替换,自动完成等复杂的东西(不是说我会反对这样的事情,如果它足够容易并且时间足够有效来实现)。
主要是能够跨多个数据库表搜索字符串,以及使用一些基本搜索条件(例如user.state. = CA AND user.active = 1
)搜索多个字段。数据库的大小将从大约50K +记录(旧数据被转储)开始,最大的单个可搜索表将是大约15K记录,并且它将随着时间的推移而显着增长。
也就是说,Zend_Lucene对我很有吸引力,因为它很灵活(以防我将来需要我的搜索解决方案),因为它可以解析MS Office文件(用户将上传到我的应用程序)。但它的灵活性也使得设置变得复杂。
我认为最直接的选择就是使用Doctrine的搜索功能,但我不确定这是否能够处理我需要的东西。而且我不知道那里有什么选择可以结合我对简单性的渴望和功率。
您建议我调查哪些搜索解决方案?为什么你认为这种解决方案在这种情况下会很好用?
答案 0 :(得分:1)
我会建议使用Solr搜索引擎。
Solr 是一个基于Lucene Java搜索库的开源企业搜索服务器,具有XML / HTTP和JSON API,点击突出显示,分面搜索,缓存,复制,Web 管理界面(这真的很棒)以及更多功能。
它在诸如Tomcat之类的Java servlet容器中运行。
您可以使用solr-php-client来处理php中的查询。