虽然您可以使用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针的不粘绣花针。
但是等等,还有更多的编辑
想要自动分析你的时间序列数据吗?您可以使用机器学习特性在您的数据中创建正常行为的精确基线,并识别异常模式。使用机器学习,您可以检测:
- 异常与值、计数或频率的时间偏差有关
- 统计罕见
- 一个群体中不寻常的行为
最棒的是什么?您不必指定算法、模型或其他与数据科学相关的配置就可以做到这一点。