虽然你可以使用Elasticsearch作为文档仓库来进行获取文档以及元数据,但它真正的优势在于能轻松使用基于Apache Luncene搜索引擎库构建的搜索能力.
Elasticsearch提供一套简单,语义清晰的REST API来管理集群,索引 以及数据查询.为了测试,你可以直接通过命令行或Kibana的开发者控制台提交请求. 根据你的应用,你可以选用如下语言提供的Elasticsearch client ,Java, JavaScript, Go, .NET, PHP, Perl, Python.
查询数据
Elasticsearch REST API 支持结构化查询, 全文本查询,以及结合两者的复杂查询. 结构化查询和在SQL中构建的类型查询类似. 例如,你可以在你的 employee
索引中查询 gender
和age
两个字段,然后通过 hire_date
对匹配结果进行排序. 全文本查询会找出所有匹配查询字符串的文档,并通过相关性(有多匹配你的查询条件)对它们进行排序.
除了单条件搜索,还可以执行短语搜索,相似性搜索,前缀搜索.然后自动获得推荐数据.
是否需要搜索地理位置和其他数字数据? Elasticsearch使用了优化的数据结构对非文本数据进行索引,以此来支持高性能的地理位置及数字查询.
你可以通过 Elasticsearch 丰富的 JSON 风格的查询语言(Query DSL)来访问所有的这些查询能力.你还可通过构造SQL风格的查询来查找和聚合数据.
分析数据
Elasticsearch聚合使得你可以构建复杂数据摘要,并洞悉关键指标,模式及趋势. 不仅仅是”大海捞针”,聚合可以回答下列问题:
- 草堆里有多少针
- 针的平均长度是多少
- 针长的中位数是多少,通过制造商细分
- 过去6个月,每月增加了多少针
你还可以用聚合来回答写更复杂的问题
- 最受欢迎的针制造商是谁
- 是否有异常的针聚集
由于聚集和查询使用的是相同的数据结构, 它也是非常快的. 这使得你可以近实时的分析数据或将数据进行可视化. 随着数据的变化,你的报表和dashboard也会更新,所以你可以基于最新的信息采取对应行为.
另外,聚集操作和查询请求可以放在一起. 你可以在一个请求中同时查询文档,过滤结果以及执行分析. 由于聚合是在特定的搜索条件下计算的, 所以你不仅可以展示70号针的数量,你还可以展示那些所有匹配你用户查询要求的(用户刺绣)70号针的数量
等等,你还可以
想要自动分析时间序列的数据? 你可以通过机器学习特性为你的正常数据创建精准的基线,并识别异常模式.通过机器学习,你可以检测:
- 与数据,数量或频率有关的偏离异常
- 统计罕见数据
- 一个群体成员的异常行为
最好的是,你可以在不指定算法,模型或其它与数据科学相关的配置的情况下做到这些
文章链接 https://fangzongzhou.github.io/2019/07/24/计算机/技术文档/Elasticsearch/信息输出-查询&分析/