- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在对 fielddata vs doc_values 进行的一些实验中,我遇到了一个奇怪的案例。在我之前的映射中,我根本没有使用文档值。在我的新映射中,我已将 doc_values: true
添加到映射中的所有字段,分析的字符串字段和 bool 值 ( not supported until 2.0 ) 除外。
详细来说,我是这样处理的:
在重新索引我的所有数据之前,我重新启动了我的 ES 1.7 集群并运行了一个带有排序、聚合和脚本字段的查询以“预热”字段数据缓存。然后我查询了 /fielddata
端点以了解 fielddata 缓存的使用情况。它看起来像这样:
curl -XGET 'localhost:9200/_cat/fielddata?v&fields=*'
id host ip node total items.desc.raw more_fields...
rKX7... myhost 192.168.1.100 Doom 32.9mb 2.3mb ...
如您所见,items.desc.raw
字段使用了 2.3mb 的堆空间。 items
是 nested
类型,包含一个字符串多字段和一个名为 raw
的 not_analyzed
子字段。简而言之,该嵌套字段的映射如下所示:
"items": {
"type": "nested",
"properties": {
"desc": {
"type": "string",
"fields": {
"raw": {
"type": "string",
"index": "not_analyzed"
}
}
}
}
}
将 doc_values: true
添加到 items.desc.raw
后,重新索引整个索引并再次运行一些聚合、排序和脚本以预热 fielddata 缓存,我再次查询 /fielddata
端点,结果如下:
curl -XGET 'localhost:9200/_cat/fielddata?v&fields=*'
id host ip node total items.desc.raw some_bools...
tAB5... myhost 192.168.1.100 Yack 2.1mb 9.2kb ...
所以 fielddata 的使用确实大大降低了(这很好),我看到的唯一字段是 bool 字段(即上面的 some_bools
),这是预期的,但令我惊讶的是,我的嵌套 not_analyzed
字符串字段也出现了,但占用的空间要少得多。
items.desc.raw
仍然出现在 fielddata 缓存中的原因是什么?
最佳答案
不知何故我忘记了global ordinals .这就是为什么即使在使用 doc_values
之后我仍然使用 fielddata 的原因,因为全局序数不能包含在 doc_values
中。
关于mapping - 具有 doc_values 的 not_analyzed 字段仍在 fielddata 缓存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31623636/
我映射的elasticsearch类型如下, mappings": { "jardata": { "properties": { "groupID": { "index"
我有一个自定义对象,我希望将其作为索引中自己的类型存储在 ElasticSearch 中,但我不希望分析该对象中的任何字段。我应该怎么做? 我一直在使用 ElasticSearch NEST 客户端,
您好,对于某些要求,我已将所有索引设为 not_analyzed { "template": "*", "mappings": { "_default_": { "dynami
我有一个如下所示的文档,“tags”字段是一个嵌套文档,我想将标签文档的所有子字段设置为index = not_analyzed。问题是标签中的字段是动态的。任何标签都可能。那么我如何为此定义动态映射
这里也有类似的问题问Elasticsearch Map case insensitive to not_analyzed documents ,但是我的情况略有不同,因为我处理特殊字符。 大多数人建议
我在 Amazon SQS 中有很多数据(json 格式)。我基本上有一个简单的 python 脚本,它从 SQS 队列中提取数据,然后在 ES 中索引它。我的问题是,即使我在脚本中将索引指定为“no
我在对嵌套对象执行构面搜索时遇到问题。 以我有以下文档为例: tags: [ { tag: "tag0", tag_url: "http://xxxxxxx.com/
当我尝试将“not_analyzed”应用到我的 ES 映射中时,它不起作用。 我在 Laravel 中将这个包用于 ES - Elasticquent 我的映射看起来像: 'ad_title' =>
我有一个 ElasticSearch 类型,我希望为其动态设置映射。我想分析该类型的几个选择字段,但其他所有内容都应设置为“not_analyzed”。 我想出了以下片段。这会将所有 string 字
是否可以将现有字段的属性从 not_analyzed 修改为 analyzed? 如果没有,我该怎么做才能保存我所有的文件? 我无法删除映射(因为那样所有文档都将消失)并且我需要分析过的旧字段。 最佳
ES 的新手,所以可能是个愚蠢的问题,但我正在尝试使用通配符进行搜索,例如:"SOMECODE*" 和 "*SOMECODE" 它工作正常,但文档中的值可能有"SOMECODE/FRED"。 问题是
我有一个具有以下映射的类型 PUT /testindex { "mappings" : { "products" : { "properties" :
我的映射定义中有以下字段: ... "my_field": { "type": "string", "index":"not_analyzed" } ... 当我索引一个值为 my_field
如果执行以下操作,则会发生错误: 创建具有两个映射的索引 这两个映射具有相同的字段(在本例中为thing) thing字段中只有一个具有"index": "not_analyzed" 可以通过以下调用
作为我们 AWS 基础设施的一部分,我使用的是 Elasticsearch (7.4) 索引。我们使用 Terraform 在 AWS Elasticsearch 中创建域,但我们没有显式创建索引。相
我有一个索引,如以下设置和映射; { "settings":{ "index":{ "analysis":{ "analyzer":{
我面临一个问题,即如何全局设置“index”:“not_analyzed”,以便在映射json格式文件中 flex 搜索字符串值,以便在制作报告时不会被标记化。目前,我已经单独进行了检查。但是,当有新
我正在尝试查找区分大小写的匹配名称。当我尝试下面的代码时,它按预期工作,不区分大小写。 HashMap data = new HashMap(); data.put("
我在使用 java 在 Elasticsearch 中尝试批量 api 时遇到以下异常: Caused by: java.lang.IllegalArgumentException: Document
我正在尝试对结果进行分组,以便它们按类别分组。 SearchResponse response = client.prepareSearch("search") .ad
我是一名优秀的程序员,十分优秀!