我应该使用哪个第三方搜索引擎(免费)?
Posted
技术标签:
【中文标题】我应该使用哪个第三方搜索引擎(免费)?【英文标题】:Which third party search engine (free) should I use? 【发布时间】:2010-12-28 07:26:03 【问题描述】:正如标题所说,我需要一个搜索引擎...用于 mysql 搜索。 我的网站是基于 php 的。
我打算使用 sphinx,但我的托管公司不支持全文索引!
所以不用全文就可以使用的搜索引擎!
它应该非常强大,并且必须至少包含以下这些功能:
在搜索“bmw 520”时,仅匹配这两个单词完全按照此顺序出现的位置。仅与“bmw”或仅“520”不匹配。
当搜索“bmw 330ci”时,将返回上述结果,但是,有和没有 ci 扩展名。众所周知,汽车中有许多扩展名(i、ci、si、fi 等)。
我希望“减号”“排除”所有包含该符号后单词的返回值,例如:“bmw -330”将返回所有“bmw”结果而不返回“330”结果。 (用 NOT 代替减号也可以)
所有特殊字符重音符号(如“é”)都转换为其简单值,在本例中为“e”。
在搜索中完全忽略的单词列表
谢谢大家!
【问题讨论】:
@camram :使用审核工具,我看到您的问题已被一个人标记为“冒犯性”;这只是一个假设(我只是无法确定),但我敢打赌同一个人投了反对票——也许有人不喜欢你问题中的“d***”部分? 这有什么冒犯的?然后我会编辑它,但那是幼稚的行为,那个人很容易修改我的 Q! 不是每个人都可以编辑Qs 被“该死”这个词冒犯(甚至被打上星号!)的人不是为互联网而生的。 【参考方案1】:Zend_Lucene 搜索能力相当好。我不确定它将如何满足您的第二个要求,但是如果您自定义标记化,您应该能够通过将字母到数字的更改视为新词来做到这一点。
我真的不确定的是最高要求。考虑到它是如何被索引的,在搜索中顺序变得不敬,所以如果不大量编辑 Lucene、编写过滤器(使用 lucene 拉取匹配项,然后检查顺序)或编写自己的解决方案,您可能无法做到这一点.所有这些都会减慢搜索速度,并增加服务器的负载。
还有solr,不过我没用过,也不知道。 Sphinx 是另一个,但我看你已经排除了。
【讨论】:
既然你打败了我,我删除了我的答案并在此处添加使用示例:dev.juokaz.com/php/starting-with-zend%5Fsearch%5Flucene【参考方案2】:如果您有时间进行初始设置,Xapian 非常好(非常全面)。
它的功能与您期望的搜索引擎一样,告诉索引器在哪些命名空间/表/对象(页面、配置文件、产品等)下索引哪些信息,然后根据关键字为您的用户发出查询,它还支持谷歌风格的标签,例如“profile:Mark icecream”会在我的个人资料中搜索单词 icecream,我似乎记得它也支持您指定为数字的数据的范围。
可以在本地模式下使用,该模式可以提供拼写修改(您的意思是吗?),或在许多网站可以索引和查询的远程模式下。
真正拯救我一次的是能够将临时不可搜索的数据附加到索引项目,例如将数据库 ID 附加到为该记录编制索引的所有数据上,非常适合当您的匹配项从 xapian 返回时从数据库中获取整个记录。
【讨论】:
【参考方案3】:在此期间,我在我的网站上使用了几个搜索引擎,但在下一次重建中,我计划迁移到 Google Site Search。
这有几个原因:
用户非常熟悉 Google 搜索结果列表的风格,这提高了可用性和点击率 Google 引擎非常擅长猜测何时使用页面描述以及何时使用页面片段(与其他一些引擎相比,它也非常擅长获取相关片段) 成千上万个非常受欢迎的网站都在使用它 Google 是最受欢迎的搜索引擎,因此您知道他们的技术既可靠又准确Google Site Search 起价为每年 100 美元(不超过 1000 个页面)(并且有查询限制) 或者您可以使用免费的 Google 自定义搜索引擎(但它的可定制性要低得多)
【讨论】:
以上是关于我应该使用哪个第三方搜索引擎(免费)?的主要内容,如果未能解决你的问题,请参考以下文章