小编sus*_*lov的帖子

为什么全局序数建立在字段数据而不是 doc_values 上?

我有一个像这样的字段“位置”

 "location": {
        "type": "string",
        "index": "not_analyzed",
        "store": true,
        "fielddata": {
          "format": "doc_values"
        }
      },
Run Code Online (Sandbox Code Playgroud)

但是,当我在这个字段中使用术语聚合时,我看到了这种日志

[2015-05-13 15:42:56.210][DEBUG][index.fielddata.plain] Global-ordinals[location][361372] took 206 ms
[2015-05-13 17:55:44.692][DEBUG][index.fielddata.plain] Global-ordinals[location][461584] took 230 ms
[2015-05-13 17:56:21.907][DEBUG][index.fielddata.plain] Global-ordinals[location][263096] took 1205 ms
Run Code Online (Sandbox Code Playgroud)

而且我还可以看到 Java 堆大小已经增加,这导致了很长的旧垃圾收集。

为什么 doc_values 字段使用 java 堆?因为我也存储它们?我可以避免垃圾收集吗?

lucene elasticsearch

2
推荐指数
1
解决办法
878
查看次数

Lucene的doc_values如何实现?

我看到了“ doc_values”的ES文档http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/doc-values.html

“文档值是在索引时而不是搜索时生成的”,那么如果使用doc_values将生成什么?

“ doc值是预先构建的,并且初始化速度要快得多”,为什么它要快得多?

“但是没有使用堆内存”,那么使用页面缓存吗?

有人可以向我解释doc_values的实现方式以及何时使用吗?我定期用jstat检查我的堆使用情况,我发现我还有足够的空间使用。

lucene solr mmap page-caching elasticsearch

1
推荐指数
1
解决办法
1501
查看次数

标签 统计

elasticsearch ×2

lucene ×2

mmap ×1

page-caching ×1

solr ×1