我正在为我的php网站创建一个搜索引擎。我需要搜索mysql表。
问题是,搜索引擎必须非常“智能”,这样用户才能很容易地找到他们的项目(这是一个分类广告网站)。
我现在已经用这段代码建立了一个全文搜索:
MATCH (headline) AGAINST ($querystring)但这还不够..。
例如,假设字段headline包含类似于Bmw 330ci的内容。如果我搜索330,我不会得到任何结果。结尾('ci')只是汽车模型中众多结尾中的一个,在查询表时必须将其考虑在内。
或者,如果headline字段为bmw330怎么办?也没有结果,因为它只匹配完整的单词。
或者,如果headline是bmw 330,而我搜索了bmw 520,即使我搜索了bmw 520,我仍然会得到bmw 330的结果。不太好!
我该如何解决这个问题?
发布于 2009-12-10 14:01:28
当谈到全文搜索时,想要免费解决方案的人通常倾向于使用Sphinx或Solr。
这两个我都没用过,但我已经读过好几遍了,它们很棒,很容易在PHP和MySQL中使用。
发布于 2015-04-06 16:20:45
不要重复发明轮子:倒排索引搜索引擎已经在那里了,免费,开源,简单而强大。他们有你需要的所有东西来满足这类搜索需求。
根据您的上下文,您可以选择像Apache Lucene这样的搜索库,也可以选择像Apache Solr或Elastic Search这样的搜索平台。
它们都有很好的文档,并且被广泛使用。这极大地减少了学习曲线,即使你从未使用过全文搜索世界。
https://stackoverflow.com/questions/1878899
复制相似问题