虽然您可以使用Elasticsearch作为文档存储和检索文档及其元数据,但真正强大的功能来自于能够轻松访问Apache Lucene搜索引擎库上构建的全套搜索功能。

    Elasticsearch提供了一个简单、一致的REST API,用于管理集群、索引和搜索数据。出于测试目的,您可以直接从命令行或通过Kibana中的开发人员控制台轻松地提交请求。在您的应用程序中,您可以将Elasticsearch客户端用于您选择的语言:Java、JavaScript、Go、. net、PHP、Perl、Python或Ruby。

    搜索你的数据
    Elasticsearch REST api支持结构化查询、全文查询和组合这两种查询的复杂查询。结构化查询类似于您可以在SQL中构造的查询类型。例如,您可以在员工索引中搜索性别和年龄字段,并根据hire_date字段对匹配项进行排序。全文查询查找与查询字符串匹配的所有文档,并按相关度返回它们——它们与你的搜索词多么匹配。

    除了搜索单独的术语外,您还可以执行短语搜索、相似度搜索和前缀搜索,并获得自动完成建议。

    是否有要搜索的地理空间或其他数值数据?Elasticsearch在支持高性能地理和数字查询的优化数据结构中索引非文本数据。

    您可以使用Elasticsearch全面的json风格的查询语言(查询DSL)访问所有这些搜索功能。您还可以构造SQL风格的查询,以便在Elasticsearch内部搜索和本地聚合数据,而JDBC和ODBC驱动程序允许大量的第三方应用程序通过SQL与Elasticsearch交互。

    分析你的数据
    Elasticsearch聚合使您能够构建数据的复杂摘要,并深入了解关键指标、模式和趋势。不同于平时的“大海捞针”,聚合让你能够回答以下问题:

    • 干草堆里有多少针?
    • 针的平均长度是多少?
    • 针的中间长度是多少,按制造商分类?
    • 在过去的六个月里,每个月有多少针被加到干草堆里?

    您还可以使用聚合来回答更微妙的问题,比如:

    • 你们最受欢迎的针具制造商是什么?
    • 是否有任何异常或异常的针团?

    因为聚合利用了用于搜索的相同数据结构,所以它们的速度也非常快。这使您能够实时分析和可视化您的数据。您的报告和仪表板会随着数据的更改而更新,以便您可以根据最新的信息采取行动。

    更重要的是,聚合与搜索请求一起运行。您可以在单个请求中搜索文档、过滤结果并同时对相同的数据执行分析。因为聚合是在特定搜索的上下文中计算的,所以您不仅要显示所有70针的数量,还要显示符合用户搜索条件的70针的数量——例如,所有70针的不粘绣花针。

    但是等等,还有更多的编辑
    想要自动分析你的时间序列数据吗?您可以使用机器学习特性在您的数据中创建正常行为的精确基线,并识别异常模式。使用机器学习,您可以检测:

    • 异常与值、计数或频率的时间偏差有关
    • 统计罕见
    • 一个群体中不寻常的行为

    最棒的是什么?您不必指定算法、模型或其他与数据科学相关的配置就可以做到这一点。