身安不如心安,屋宽不如心宽 。

es建立倒排索引时如何区分字段的?倒排索引是token对应文档的集合,里面是否区分token匹配到一篇文档的哪些字段?

Elasticsearch | 作者 tygcs | 发布于2018年11月16日 | 阅读数:5048

按照我的理解,建立倒排索引就是将文档分词成token,然后存储token到文档id集合的映射,当然这个集合里面可能不只是文档id,可能还有文档的其他信息。

然后我们在查询的时候,经常会指定查询字段,比如对“docName”字段进行查询
我的问题是,倒排索引里面是否按照字段来存储对应文档信息的?

比如:
“苹果”->"docName" -> "doc1, doc2, doc3..."
“苹果”->"docContent" -> "doc2, doc4, doc6..."

当然这只是我猜想的。
不知道对于指定字段检索,索引中的相应结构是怎样的呢?
已邀请:

weizijun - elasticsearch fan

赞同来自: JackGe tygcs

lucene的倒排索引都是按照field来存储对应的文档信息的,你的例子中,如果docName和docContent中有苹果这个term,就会有这两个链,你可以这样理解:
 
docName:
“苹果”-> "doc1, doc2, doc3..."
 
docContent:
“苹果”-> "doc2, doc4, doc6..."

要回复问题请先登录注册