做网站还需要买空间吗,中国做视频网站有哪些,电子商务的网站设计,永久免费补单系统作者#xff1a;来自 Elastic Adrien Grand Apache Lucene 10 刚刚发布#xff0c;重点关注硬件效率#xff01;查看主要版本亮点。
Apache Lucene 10 终于发布了#xff01;自 Lucene 9.0#xff08;于 2021 年 12 月发布#xff0c;距今已有近 3 年#xff09;以来来自 Elastic Adrien Grand Apache Lucene 10 刚刚发布重点关注硬件效率查看主要版本亮点。
Apache Lucene 10 终于发布了自 Lucene 9.0于 2021 年 12 月发布距今已有近 3 年以来已有 185 位独立贡献者提交了 2,000 多次提交发生了很多事情。公平地说这些更改中的大多数都是在 9.x 次要版本中提供的。但是最雄心勃勃的更改通常需要一个主要版本例如在 Lucene 6.0 中引入多维点multi-dimensional points、在 8.0 中引入动态修剪dynamic pruning 或在 9.0 中引入向量搜索vector search 。在 10.0 中Lucene 的重点领域一直是硬件效率即让 Lucene 更好地利用现代硬件。让我带你了解主要的版本亮点 更多的搜索并行性
多年以来Lucene 一直能够并行化搜索执行方法是创建段组在不同的线程中搜索每个组最后合并结果。这种方法的一个缺点是它将索引几何结构索引如何组织成段与搜索并行性结合在一起。例如强制合并force-merged为单个段的索引不再能够利用多个执行线程进行搜索。现代 CPU 通常有数十个核心这非常令人失望
为了克服这一限制Lucene 的查询评估逻辑现在允许将索引拆分为逻辑分区这些分区不再需要与段对齐。例如强制合并为单个段的索引仍然可以被切分为 10 个逻辑分区每个分区包含该段文档的十分之一。
这一变化将有助于提高搜索并行性尤其是在具有许多核心的机器上和/或最高层上只有少数段的索引上。此更改不适用于创建 Scorer 成本较高的查询 - 例如范围查询和前缀查询但我们希望在即将发布的次要版本中解除此限制。 更好的 I/O 并行性
到目前为止Lucene 将使用同步 I/O并且每个搜索线程一次最多执行一个 I/O 操作。对于大大超过页面缓存大小的索引这可能导致查询受限于 I/O 延迟而主机仍远未达到 IOPS 的最大值。令人沮丧
为了解决这个问题Lucene 的 Directory 抽象引入了一个新的 IndexInput#prefetch API让操作系统知道它即将读取的文件区域。然后操作系统可以在单个 OS 线程内并行检索与这些区域相交的页面。例如带有 TermQuery 子句的 BooleanQuery 现在将在单个执行线程内并行执行术语字典查找的 I/O然后并行检索每个帖子列表的前几页。MMapDirectory 是 Lucene 的默认 Directory 实现它使用 Linux 和 Mac OS 上的 madvise 的 MADV_WILLNEED 建议实现此 prefetch API。
我们对这一变化感到非常兴奋它已经被证明有助于快速本地 NVMe 磁盘并且将进一步帮助具有更差延迟同时保持良好并行性的存储系统例如网络附加磁盘GCP 持久存储、Amazon EBS、Azure 托管磁盘甚至对象存储GCP 云存储、Amazon S3、Azure blob 存储。 通过稀疏索引提高 CPU 效率和存储效率
Lucene 10 引入了对稀疏索引的支持在其他数据存储中有时称为主键索引primary-key indexing或区域索引zone indexing。这个想法很简单如果你的数据按排序顺序存储在磁盘上那么你可以将其组织成块记录每个块的最小值和最大值你的查询将能够利用这些信息跳过与查询不相交的块或完全匹配查询包含的块。只有与查询部分相交的块才需要进一步检查挑战在于选择最佳索引排序以最小化此类块的数量。
Lucene 的稀疏索引目前通过 4 个级别的块实现每个级别分别具有 4k、32k、256k 和 2M 文档。
如果做得正确这种索引形式非常节省空间每个块只有几个字节和 CPU 效率只需几个 CPU 指令就可以决定数千个文档是否匹配。缺点是索引只能以单一顺序存储在磁盘上因此并非所有字段都能从中受益。通常索引会根据数据的主要维度进行排序。例如对于包含产品的电子商务目录这些维度可能是产品的类别和品牌。 稀疏索引 数据库中的稀疏索引是一个文件其中包含数据文件中每个块的键和指针对。此文件中的每个键都与指向排序数据文件中块的特定指针相关联。在具有重复键的聚类索引中稀疏索引指向每个块中的最低搜索键。 结论
请注意9.x 次要版本中还发布了一些与硬件效率相关的更改。特别值得强调的是
Lucene 现在在比较向量和解码帖子时利用显式向量化Lucene 的并发搜索执行逻辑 performs work stealing 以减少分支任务的开销。Lucene 的帖子格式已更新为具有更连续的访问模式Lucene 现在在打开具有随机访问模式的文件时传递 MADV_RANDOM 建议。
我们对这个新的 Lucene 版本和硬件效率重点感到非常兴奋。如果你想了解有关这些改进的更多信息我们将在未来几周内撰写有关它们的更详细的博客。敬请期待。 准备好自己尝试一下了吗开始免费试用。
Elasticsearch 和 Lucene 提供强大的向量数据库和搜索功能。深入了解我们的示例笔记本以了解更多信息 原文Apache Lucene 10 release highlights - hardware efficiency more — Search Labs