Elasticsearch原理探索:_score计算与应用

需积分: 20 21 下载量 118 浏览量 更新于2024-08-13 收藏 1.01MB PPT 举报
本文主要解析了Elasticsearch中 `_score` 的计算原理,并介绍了Elasticsearch作为分布式搜索引擎的核心特点和应用场景。 在Elasticsearch中,`_score` 是每个文档在搜索结果中的相关性评分,它是如何计算出来的呢?首先,我们需要了解Elasticsearch的两大索引类型:倒排索引和正排索引(doc values)。倒排索引用于快速搜索,而正排索引用于排序、聚合和过滤等操作。 倒排索引是Elasticsearch搜索的基础,它将文档中的词汇映射到包含这些词汇的文档列表。例如,对于文档"hello world you and me"和"hi, world, how are you",倒排索引会创建"hello"对应doc1,"world"对应doc1和doc2,"you"对应doc1和doc2等关系。 正排索引(doc values)则保存了每个字段的值,以便于排序和过滤。当内存不足时,操作系统会将这些数据写回磁盘。在上述示例中,按"age"字段排序时,不能使用倒排索引,因为倒排索引无法提供数值排序,而是需要doc values。 Elasticsearch不仅仅是一个基于Lucene的全文搜索引擎,它是一个分布式、实时的存储和分析平台,能够处理大量结构化和非结构化数据。它具有以下特性: 1. 分布式实时文件存储:数据被分散存储在集群的不同节点上,支持高可用性和水平扩展。 2. 实时分析搜索引擎:能够快速响应查询,同时支持数据分析。 3. 可扩展性:能够扩展到数百台服务器,处理PB级别的数据。 Elasticsearch广泛应用于各种场景,如StackOverflow的搜索功能,GitHub的代码搜索,以及电子商务网站的商品搜索等。其功能涵盖: 1. 分布式搜索引擎和数据分析引擎:既能处理搜索需求,也能进行复杂的数据分析。 2. 全文检索和结构化检索:支持对文本和结构化数据的查询。 3. 数据分析:可以对大量数据进行聚合和统计分析。 在全文检索中,用户可以通过关键词如"牙膏"来搜索包含该词的商品。而在结构化检索中,可以指定特定条件,如查找商品分类为"日化用品"的所有商品。Elasticsearch通过其强大的索引和搜索机制,使得这些操作变得高效且易于实现。