虽然您可以将Elasticsearch用作文档存储并检索文档及其元数据,但真正的强大之处在于能够轻松访问基于Apache Lucene搜索引擎库构建的全套搜索功能。
Elasticsearch提供了一个简单,一致的REST API,用于管理您的集群以及索引和搜索数据。为了进行测试,您可以直接从命令行或通过Kibana中的开发者控制台轻松提交请求。在您的应用程序中,您可以将 Elasticsearch客户端 用于您选择的语言:Java,JavaScript,Go,.NET,PHP,Perl,Python或Ruby。
搜索数据
Elasticsearch REST API支持结构化查询,全文查询以及结合了两者的复杂查询。结构化查询类似于您可以在SQL中构造的查询类型。例如,您可以搜索索引中的gender
和age
字段,employee
然后按hire_date
字段对匹配项进行排序。全文查询会找到所有与查询字符串匹配的文档,并按相关性对它们进行归还-它们与您的搜索词的匹配程度如何。
除了搜索单个术语外,您还可以执行短语搜索,相似性搜索和前缀搜索,并获得自动完成建议。
是否要搜索地理空间或其他数字数据?Elasticsearch在支持高性能地理和数字查询的优化数据结构中索引非文本数据。
您可以使用Elasticsearch全面的JSON样式查询语言(Query DSL)访问所有这些搜索功能。您还可以构造SQL样式的查询,以在Elasticsearch内部本地搜索和聚合数据,并且JDBC和ODBC驱动程序使范围广泛的第三方应用程序可以通过SQL与Elasticsearch进行交互。
分析数据
Elasticsearch聚合使您能够构建数据的复杂摘要,并深入了解关键指标,模式和趋势。通过汇总,您不仅可以找到众所周知的“大海捞针”,还可以回答以下问题:
- 大海捞针有多少根?
- 针的平均长度是多少?
- 针头的中位长度是多少,由制造商细分?
- 在过去六个月的每个月中,有多少根针被添加到干草堆中?
您还可以使用聚合来回答更细微的问题,例如:
- 您最受欢迎的针头制造商是哪些?
- 是否有异常或异常的针团?
由于聚合利用了用于搜索的相同数据结构,因此它们也非常快。这使您可以实时分析和可视化数据。您的报告和仪表板会随着数据的更改而更新,因此您可以根据最新信息采取措施。
而且,聚合与搜索请求一起运行。您可以在单个请求中同时对相同数据搜索文档,过滤结果并执行分析。而且由于聚合是在特定搜索的上下文中计算的,因此您不仅显示了所有70针大小的针数,而且还显示了符合用户搜索条件的70针大小的针数-例如,所有尺寸的70 个不粘绣针。
但是等等,还有更多
是否想自动分析您的时间序列数据?您可以使用 机器学习功能在数据中创建正常行为的准确基准,并识别异常模式。通过机器学习,您可以检测到:
- 与值,计数或频率的时间偏差有关的异常
- 统计稀有度
- 人口成员的异常行为
最好的部分是您无需指定算法,模型或其他与数据科学相关的配置即可执行此操作。