存储术语向量时参数 "store" 是强制性的吗?

When storing term vectors is the parameter "store" mandatory?

我想存储一个字段的词向量,但我有疑问。他们在文档中说:

"mappings": {
    "tweet": {
      "properties": {
        "text": {
          "type": "text",
          "term_vector": "with_positions_offsets_payloads",
          "store" : true,
          "analyzer" : "fulltext_analyzer"
         }
      }
    }
  }

将存储术语向量。但是术语向量只能通过某个端点访问:

/twitter/tweet/1/_termvectors

而存储的是字段text。那么如果我想存储我的术语向量而不是字段 text 怎么办?如果我不指定 "store":true,它会存储术语向量吗?我如何确定我的术语向量是存储的而不是动态计算的?

当您在映射中指定 term_vector 时,术语向量将被存储(当然,除了 no 之外的任何可能的选项)。请参阅 term_vector docs——那里的示例映射不包括 "store":true,并且文档明确说明将存储术语向量。

你的问题是关于lucene特性的区别

可能 https://de.slideshare.net/lucenerevolution/what-is-inaluceneagrandfinal 可以帮助:

查询时不使用字段的存储值。您可以在搜索结果中使用它并用于(慢速)突出显示

只有倒排索引用于搜索(可能例如 position 用于短语查询)。

可选的文档值可用于排名