信息输出:搜索和分析
虽然你能将 Elasticsearch用作文档存储和检测文档及他们的元数据,但真正强大之处在于能轻松访问构建在 Apache Lucene 搜索引擎库之上的全套搜索能力。
Elasticsearch 提供一种简单、一致的 REST API,用于管理你的集群以及索引和搜索数据。用于测试目的,你可以轻松地从命令行或者在 Kibana 中通过开发者控制台提交请求。从你的应用里,你可以为你的语言选择 Elasticsearch 客户端:Java、JavaScript、GO、.Net、PHP、Perl、Python 或者 Ruby。
搜索你的数据
Elasticsearch REST API 支持结构化查询、全文查询以及结合二者的复杂查询。结构化查询类似于你在 SQL 中构造的查询类型。例如,你可以在职员索引中搜索性别和年龄字段,并按雇佣日期字段对匹配项进行排序。全文查询,查找查询字符串匹配的所有文档,且返回按相关性——他们与搜索词语匹配程度——排序的文档。
除了搜索单个词语,你也可以执行短语搜索、相似性搜索和前缀搜索,并且获得自动完成建议。
有你想搜索的地理空间或者其他数字数据吗? Elasticsearch 在优化数据结构中索引非文本数据用于支持高性能地理和数字查询。
你可以访问使用 Elasticsearch 全部 JSON 风格的查询语言(查询 DSL)的所有搜索能力。你也可以构造 SQL 风格的查询搜索和聚合在 Elasticsearch 中的内部数据,JDBC 和 ODBC 驱动使得各种第三方应用能通过 SQL 与 Elasticsearch交互。
分析你的数据
Elasticsearch 聚合使你能够构建数据的复杂摘要,并深入了解关键度量、模式和趋势。聚合使你能回答以下类似的问题,而不是仅仅找到众所周知的“大海捞针”:
- 大海中有多少针?
- 针的平均长度是多少?
- 按制造商分类,针的平均长度是多少?
- 过去六个月,每个月加了多少针?
你也可以使用聚合去回答更多微妙的问题,比如:
- 你最受欢迎的针制造商是谁?
- 是否有特别或者异常的针束?
因为聚合借用了用于搜索的相同数据结构,所以他们也非常快。这使得你能实时分析和可视化数据。你的报告和仪表盘随着你的数据变化而更新,以便你可以基于最新的信息采取行动。
此外,聚合随着搜索请求一起运行。你可以搜索文档、过滤结果以及在单个请求中同时对同样的数据实时地执行分析。由于聚合是在特定搜索的上下文中计算的,你不仅能展示70号针的数量,你还能展示匹配你的用户搜索标准——比如不粘的绣花针——的 70 号针数量。
但是等等,还有更多
想自动分析时序数据吗?你可以使用机器学习特性去创建在你数据中的正常行为的准确基线,并识别异常模式。通过机器学习,你能发现:
- 与值、计数或者频率有关的时间偏差异常
- 统计稀有性
- 群体成员的异常行为
最好的部分呢?你可以这样做,而不必指定算法、模型或其他与科学相关的配置。