【问题标题】:Search Engine Necessary? [closed]搜索引擎有必要吗? [关闭]
【发布时间】:2015-01-30 05:46:53
【问题描述】:

在我的应用程序中,我的数据库中有一堆服务提供商,它们提供各种服务。我需要一个用户能够通过名称、位置或两者来搜索这些服务提供商。我还需要一个用户能够根据多个属性按不同的标准过滤提供者。

我正在尝试决定是否可以简单地通过数据库查询来实现这一点,或者是否可以使用更强大的解决方案(即搜索引擎)来更好地满足我的需求。

请让我知道这两种解决方案的优缺点,以及您认为最好的选择。

我正在 Django 1.7 中编写我的应用程序,使用 PostGIS 数据库,如果搜索引擎是这里的方式,我会使用 django-haystack 和 elasticsearch。

【问题讨论】:

    标签: django database search elasticsearch django-haystack


    【解决方案1】:

    伙计,您似乎正在开发一个搜索密集型应用程序。现在我对此的看法如下-:

    1)如果你直接对数据库使用搜索密集型查询,那么自动开销会非常高,因为每次从你的 django 向数据库引擎发起一个单独的基于条件的查询时。每次查询都是使用单独的参数构建,并将构建为在后端数据库引擎上触发。结果是它会让你高度依赖数据库服务器的可用性。如果数据库服务器位于某个远程位置,情况可能会变得更糟。因为网络连接的开销将是另一个附录。

    2)您应该尝试实现像 redis 这样的服务器端缓存系统,它是一个内存中的 nosql 数据库(有时也称为数据结构服务器),它将解决我在上一点讨论的所有问题。阅读更多关于它here

    3) 增强您的搜索能力。阅读 Apache Solr enter link description here。基于 lucene 的搜索库,这将使您的搜索能力更上一层楼。

    4)最后但并非最不重要的一点是,请参阅 Facebook、Twitter 等大公司的案例研究,了解他们如何管理其基础架构。您将获得更多更好的想法。

    任何疑问或建议。欢迎评论欢呼:-)

    【讨论】:

    • 好吧,听起来像使用搜索引擎是要走的路。 Django-haystack 使这在 django 中实现起来相当简单。感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 2013-05-13
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多