如何将字段与elasticsearch中的倒排索引中的术语相关联?

时间:2016-03-19 05:26:33

标签: elasticsearch inverted-index

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

当您根据任何字段排序时,会发生类似的事情。因此,可以有一种方法将术语与字段名称相关联。请帮助我理解这里涉及的错综复杂的内容。

提前致谢。

2 个答案:

答案 0 :(得分:3)

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

还有一种称为字段数据缓存(或doc值)的东西,它具有反转的#倒置索引"。所有doc to field value lookup都在这里发生。

答案 1 :(得分:2)

  

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

引自Lucene Docs

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

  

在这种情况下,elasticsearch如何将搜索限制/限制为仅限于   特殊领域?

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

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