正如标题所说,我需要一个搜索引擎......用于mysql搜索。 我的网站是基于PHP的。
我和sphinx合作,但我的托管公司不支持全文索引!
所以在没有全文的情况下使用搜索引擎!
它应该非常强大,并且必须至少包含以下这些功能:
当搜索'bmw 520'时,仅匹配这两个单词恰好以此顺序进入的匹配。不仅仅是'bmw'或仅仅'520'匹配。
当搜索'bmw 330ci'时,会返回上面的结果,但是,WITH WITH WITHOUT ci扩展名。你们都知道(i,ci,si,fi等)汽车中有一些扩展。
我希望'减号''排除'包含符号后面的单词的所有回复,例如:'bmw -330'将返回所有'bmw'结果而不包含'330'结果。 (一个NOT而不是减号也可以)
所有特殊字符重音如“é”都会转换为简单值,在本例中为“e”。
在搜索中完全忽略的字词列表
谢谢你们!
答案 0 :(得分:5)
Zend_Lucene搜索能力相当不错。我不确定它将如何处理你的第二个要求,但是如果你自定义了标记化的,你应该能够通过将字母到数字的变化视为一个新单词来实现它。
我真正不确定的是最高要求。鉴于它是如何编入索引的,在搜索中命令变得无关紧要,所以如果没有大量编辑Lucene,编写过滤器(使用lucene来拉动匹配,然后检查顺序)或编写自己的解决方案,您可能无法做到这一点。 。所有这些都会降低搜索速度,并为您的服务器增加负载。
答案 1 :(得分:0)
Xapian非常好(非常全面)。
它的功能与您期望搜索引擎一样有效,告诉索引器在哪个命名空间/表/对象(页面,配置文件,产品等)下索引哪些信息位,然后根据关键字为您的用户发出查询,它还支持谷歌样式标签,例如“profile:Mark icecream”会搜索我的个人资料中的冰淇淋这个词,我似乎还记得它为你指定为数字的数据支持范围。
可以在本地模式下使用,可以提供拼写修改(您的意思是?),还是许多网站可以索引和查询的远程模式。
真正让我失望的是能够将瞬态不可搜索的数据附加到索引项目,例如将DB id附加到为该记录索引的所有数据,非常适合当你的匹配从xapian返回时从DB获取整个记录。
答案 2 :(得分:0)
我在我的网站上使用过几个搜索引擎,但在下次重建时我打算转到Google Site Search。
有几个原因:
Google网站搜索起价为每年100美元,不超过1000页(以及查询限制) 或者您可以使用免费的Google自定义搜索引擎(但这种可自定义性要低得多)