根据我的理解,elasticsearch使用一种称为倒排索引的结构来提供全文搜索 . 很明显,反向索引具有包含该术语的文档的术语和ID,但是文档可以具有任意数量的字段,并且字段名称可以在查询时间中用于仅查看/搜索该字段 . 在这种情况下,elasticsearch如何限制/限制搜索仅限于特定字段?我想知道倒排索引是否包含字段名称或字段ID以及术语和文档ID .
基于任何字段排序时会发生类似的事情 . 因此,可以有一种方法将术语与字段名称相关联 . 请帮助我理解这里涉及的复杂性 .
提前致谢 .
2 回答
引自Lucene Docs
两个不同字段中的相同字符串被视为不同的术语 . 因此,术语表示为一对字符串,第一个命名字段,第二个命名文本在字段中 .
每个段索引都维护术语向量:对于
each field in each document, the term vector is stored. A term vector consists of term text and term frequency.
因此,为每个文档中的每个字段维护索引 .
每个索引每个字段都有一个倒排索引 .
还有一种称为字段数据缓存(或doc值)的东西,它具有倒置的“倒排索引” . 所有doc to field value lookup都在这里发生 .