我正在开发一个Django网站,关于搜索引擎我有以下选择:

  • Lucene/Lucene with Compass/Solr
  • Sphinx
  • PostgreSQL
  • MySQL

选择标准:

  • 通过结果相关性排序
  • 检索速度
  • 易于使用,易于与Django集成
  • 资源需求:站点将托管在VPS,因此理想情况下,搜索引擎不需要大量的RAM和CPU。
  • 可伸缩性
  • 额外的功能,相关搜索

有什么好的建议?

注:对于用户实时输入的数据,希望延迟不超过15-30分钟

pyjplpyjpl提问于
翅膀的初衷产品控回答于

弹性搜索是基于Lucene的搜索服务器。它提供了一个分布式的、具有多用户功能的全文搜索引擎,具有一个RESTful的web界面和无模式的JSON文档。弹性搜索是在Java中开发的,在Apache许可的条件下作为开放源码发布。

与其他FTS(全文搜索)引擎相比,它的优势是:

  • RESTful接口
  • 不错的可拓展性
  • 大型社区
  • 由Lucene开发人员建造
  • 广泛文献
  • 有很多开放源码库(包括Django)

回答过的其他问题

如何给数据加密技术选择并使用密钥为防止数据库数据外泄?

加密算法应该根据自己的使用特点来确定。 非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。 对称加密算法不能实现签名,签名只能非对称算法。 当数据量很小时,我们可以考虑采用非对称加密算法。 在实际的操作过程中,我...... 展开详请

5G无线通信与4G的典型区别有哪些?用了哪些新技术?

3G提升了速度,4G改变了生活,5G则将改变社会。5G不仅仅是带宽的提升,更是一次颠覆性的升级。将人与人之间的通信向万物互联转变,成为整个社会数字化转型的重要基石。

定义Keras功能

这看起来像是一个令人讨厌的解剖Keras作为API。我认为这会导致更多的混乱,而不是深度学习的介绍。无论如何,解决你的问题: 所有张量都具有象征意义,在我们运行会话之前,它们不包含任何值。他们改为定义有向计算图。这loss = layer_output[:,:,:,0]是一个切...... 展开详请

如何根据spark中的列值生成行?

已采纳
您可以为其定义udf函数以生成范围,然后使用explode函数使它们分隔行 import org.apache.spark.sql.functions._ def generateUdf = udf((column: Int)=> (1 to column).toArray) ...... 展开详请

如果行中的任何变量大于某个值,请将该行保留在R中

您应该能够以快速运行的矢量化方式执行此操作,而无需明确地键入每个比较。以下是一些选项: # compare the whole data.frame to min and sum the logical values in each row res1 <- ozone[rowS...... 展开详请

自定义实现httpclient

您可以在派生类的构造函数中添加默认属性。 例如 public class MyHttpClient : HttpClient { public MyHttpClient(): base() { BaseAddress = new Uri("https:...... 展开详请

扫码关注云+社区