无规则采集器列表算法(倒排索引运行时字段段和索引可提供最优评分/排名模型)
优采云 发布时间: 2021-10-18 07:11无规则采集器列表算法(倒排索引运行时字段段和索引可提供最优评分/排名模型)
搜索和分析
全文检索
Elasticsearch 以其强大的全文搜索功能而闻名。速度这么快是因为Elasticsearch的核心使用了倒排索引;它之所以如此强大,是因为它使用了可调整的相关性分数、高级查询 DSL 以及许多可以提高搜索能力的功能。
倒排索引
Elasticsearch 使用一种称为倒排索引的结构,该结构旨在允许非常快速的全文搜索。倒排索引收录出现在所有文档中的唯一词列表。对于每个单词,它是该单词所在文档的列表。要创建倒排索引,我们首先将每个文档的内容字段拆分为单独的词(我们称之为词汇表或分词),然后创建所有唯一词的有序列表,然后列出每个词出现的文档。
了解倒排索引
运行时字段
运行时字段是在查询时(读取时间模式)评估的字段。您可以随时引入或修改运行时字段(包括索引文档后),并且您可以将运行时字段定义为查询的一部分。运行时字段和索引字段通过同一个接口暴露给查询,所以一个字段可以是数据流某些索引中的运行时字段,也可以是数据流其他索引中的索引字段,查询此时不需要知道。索引字段可以提供最优的查询性能,运行时字段可以在索引文档后灵活改变数据结构,从而与索引字段形成互补优势。
了解运行时字段
跨集群搜索
通过跨集群搜索 (CSS) 功能,任何节点都可以充当跨多个集群的联合客户端。跨集群复制节点不会加入远程节点;相反,它将以轻量级的方式连接到远程集群以执行联合搜索请求。
了解 CCS
相关性得分
相似性(相关性分数/排名模型)定义了如何对匹配的文档进行评分。默认情况下,Elasticsearch 使用 BM25 相似度,但它也提供了许多其他相似度选项;BM25 相似度是一种基于 TF/IDF 的高级相似度,其中包括内置的短字段(如名称)的 tf 标准化。
理解相似性模型
查询DSL
全文搜索需要强大的查询语言。Elasticsearch 提供了基于 JSON 的完整查询 DSL(领域特定语言),可用于定义查询。创建简单查询以匹配词汇和单位,或开发复杂查询以将多个查询集成在一起。此外,在计算相关性分数之前查询删除文档时,可以应用过滤器。
了解 Elasticsearch 搜索 DSL
异步搜索
借助异步搜索 API,用户可以在后台运行耗时的查询、跟踪查询进度并检索提供的部分结果。
理解异步搜索
荧光笔
使用 Highlighter(突出显示工具),您可以突出显示搜索结果的一个或多个字段中的内容片段,以向用户显示查询匹配的位置。当您请求突出显示时,响应内容将收录每个搜索匹配结果中突出显示的元素,包括突出显示的字段和突出显示的片段。
自动完成
完成提示器提供自动完成/按你类型搜索(auto-complete/search-as-you-type)功能。此导航功能可引导用户在键入时查找相关结果,从而提高搜索准确性。
更正(拼写检查)
单词提醒是拼写检查的基础。该工具可以根据编辑距离建议单词。它将首先分析提供的提示文本,然后建议单词。每个分析的提示文本分词都会提供建议词。
提示器(你是不是意思)
短语提醒在单词提醒的基础上构建了更多的逻辑,在搜索体验中加入了did-you-mean(你的意思是XXX)功能,让用户更正后选择整个短语而不是单个分词后基于ngram语言模型计算权重。在实际应用中,这种提醒可以根据固定的搭配和频率,根据应该选择哪个分词来做出更好的决定。
渗滤器
标准做法是通过查询查找存储在索引中的文档,但 Percolator(过滤器)颠覆了这种做法。您可以使用它来将文档与存储在索引中的查询进行匹配。percolate 查询本身收录文档,这些文档将用作查询以匹配存储的查询。
了解渗透器
查询分析器/优化器
分析 API 可以提供有关搜索请求中各个组件执行的详细时间信息。它可以让您详细了解搜索请求的执行过程,从而了解为什么有些请求处理缓慢,然后采取措施进行改进。
解剖学API
基于许可证的搜索结果
通过字段级安全性和文档级安全性,可以将搜索结果限制为仅收录用户有权访问的结果。具体来说,它可以限制可以从基于文档的只读 API 访问哪些字段和文档。
取消查询
“取消查询”是 Kibana 中的一个有用功能,它可以通过减少不必要的处理过载来帮助提高集群的整体性能。如果用户更改/更新他们的查询或刷新浏览器页面,Elasticsearch 请求不会自动取消。