【问题标题】:How can I build a web interface on top of hundreds of excel reports如何在数百个 Excel 报表之上构建 Web 界面
【发布时间】:2018-09-14 15:30:19
【问题描述】:

我有大量关于 Excel 财务报告的文档集。这些报告位于共享驱动器上,并非所有用户都可以访问该驱动器。我想构建某种形式的具有搜索功能的基本 Web 界面,以便用户可以查看数据。

我的机器上运行着 jupyter notebook,可以连接到文件。我的问题是:
1.如何构建一个Web界面,用户可以在其中搜索将触发jupyter笔记本中功能的客户。该功能将带回客户数据并显示在浏览器上。

  1. 既然目的主要是做搜索而不是任何计算,我应该完全忘记python并看看弹性搜索吗?如何开始使用基本的弹性搜索查询?还是像 Cassandra 这样更好?

我需要搜索多个 Excel 文件并返回所有结果。因此,如果我们搜索客户“ABC”,它将获得过去 12 个月的每月统计数据(每个月都存储在单独的 Excel 文件中)。

【问题讨论】:

    标签: python rest web-services elasticsearch


    【解决方案1】:

    为了使 excel 数据可搜索,您需要有某种脚本来读取这些 excel 文件,然后使用 elasticsearch Bulk API 来索引这些 excel 工作表。既然你提到你正在使用 python,你也可以为此目的使用 elasticsearch-py 并使用它们公开的 API (Bulk helpers)

    根据您如何将这些 excel 文件索引到 elasticsearch 文档中,您可能会使用 query_string 或其他东西进行全文搜索,或者使用 match(甚至 match_phrase)查询(如果您有一些特定的您想使用的搜索分析器)来搜索这些文档。在此处检查所有选项 (full text search)。对于搜索,您可以使用 http 调用 (Query DSL) 或使用某种类型的客户端来执行此操作,例如 elasticsearch-dsl

    一个简单的查询可能看起来像这样

    GET /_search
    {
        "query": {
            "query_string" : {
                "default_field" : "customer",
                "query" : "Akzo Nobel"
            }
        }
    }
    

    您将发布到包含您的文档的索引。

    注意:Elasticsearch 的搜索速度非常快,但在文档检索方面却不太精通。但是,除非您要检索成千上万的文档,否则这将不是问题。即使你打算做上述的事情,你仍然可以使用 Elasticsearch 的Scroll API

    编辑:由于我看到您提到了指标,您还可以查看 Kibana 并使用它来创建仪表板,在其中显示客户的不同指标。这可能会节省您的时间,甚至无需创建完整的 Web 界面,而且它是完全开源的。您可以在此处阅读有关如何将 Kibana 与您的 elasticsearch 实例一起使用的更多信息:Kibana docs

    【讨论】:

    • 谢谢。 Elastic Search 是否也有助于构建 UI Web 前端?
    • 不确定我是否理解您的问题。 Elasticsearch 只是一个用 Java 编写的软件,一个搜索引擎。您可以通过基本的 HTTP 调用构建任何类型的 Web 界面和查询 elasticsearch。您可以在后端使用任何允许对 Elasticsearch 实例进行 HTTP 调用的技术堆栈。大多数编程语言都有一个 Elasticsearch 客户端库,如果您不想使用纯 HTTP 调用,可以帮助您执行此操作,请查看此页面以了解elastic.co/guide/en/elasticsearch/client/index.html
    • @Victor 也许你是说 Kibana,看看我编辑的答案
    • 谢谢,我确实需要一个带有搜索框和放大镜图标的 UI。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多