如何在弹性搜索中将字段与倒排索引中的术语相关联



根据我的理解,elasticsearch使用一种称为倒排索引的结构来提供全文搜索。很明显,倒排索引具有具有该术语的文档的术语和ID,但文档可以具有任意数量的字段,并且字段名称可以在查询时间内用于仅在该字段上查找/搜索。在这种情况下,弹性搜索如何限制/限制搜索只到特定字段?我想知道倒排索引是否包含字段名称或字段 ID 以及术语和文档 ID。

当您基于任何字段进行排序时,也会发生类似的事情。因此,可能有一种方法可以将术语与字段名称相关联。请帮助我了解这里涉及的复杂性。

提前谢谢。

我想知道倒排索引是否包含字段名称或字段 ID 以及条款和文档 ID。

引自Lucene Docs

两个不同字段中的相同字符串被视为不同的术语。因此,术语表示为一对字符串,第一个命名字段,第二个命名字段的文本。

在这种情况下,弹性搜索如何限制/限制搜索仅 特定领域?

每个段索引都维护术语向量:用于each field in each document, the term vector is stored. A term vector consists of term text and term frequency.

因此,将为每个文档中的每个字段维护索引。

我们每个

索引的每个字段都有一个倒排索引。

还有一种叫做字段数据缓存(或文档值)的东西,它具有倒置的"倒排索引"。所有文档到字段值查找都发生在此处。

我也有这个问题我可以在这里与你分享我的理解。Elasticsearch 为文档的每个全文字段创建一个倒排索引。因此,如果索引有 10 个允许全文搜索的字段,那么 Elasticsearch 将为 10 个字段创建 10 个不同的倒排索引,并将分析器结果存储在每个字段的倒排索引中。因此,当您执行搜索操作并指定要搜索的所有字段时,Elasticsearch 将仅搜索这些特定字段的倒排索引因此,总而言之,在字段级别创建倒排索引。我希望这有所帮助谢谢

最新更新