我想为我的网站构建一个搜索引擎,以便我可以快速找到相关内容。我已经做了很多Google搜索,发现了ElasticSearch和Solr(都位于Lucene之上)和whoosh(基于python)。
但是,所有这些搜索引擎是否都只是在数据之上构建了“反向索引”?还有哪些其他算法方法可以获取更高质量的搜索?
这篇博客帖子对Solr之上的协作过滤很感兴趣,它返回了相关的搜索查询:
http://www.opensourceconnections.com/2013/08/25/semantic-search-with-solr-and-python-numpy/
还有其他我应该注意的常用技术吗?在ElasticSearch / Solr之上是否还有其他我可以插入的库,并且可以“开箱即用”使用?
任何链接或提示将不胜感激!
最佳答案
您没有提到您正在开发什么技术堆栈。
如果您使用Ruby on Rails,我建议您使用Tire,它是一个通过ElasticSearch提供DSL包装器的 gem 。本质上,它允许您在Elasticsearch中索引数据。
对于Rails,Sunspot是一个非常流行的 gem ,人们使用它与Solr进行交互。
对于.NET-SolrNET是一个出色的Solr客户端。
您问题的其他部分(围绕实现良好的搜索引擎)过于广泛-我建议阅读一本好书,例如Lucene in Action,以了解Solr / Elasticsearch可以做什么。
我确实有一些笔记是我以前写的,您可以阅读一些关于here搜索的经验。
编辑:
由于您使用的是python,因此我建议Haystack,尽管它特定于Django。它非常适合我们的需求。但是,如果您不使用django,我可以将solrpy视为Solr客户端。 Haystack可与Solr和Elasticsearch一起使用。
关于search - 为我的网站构建/设计搜索引擎的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559692/