我真的不明白为什么核心类型链接它在属性描述中说(例如,对于数字):
这两个大胆的部分似乎相互矛盾.如果"index":"no", "store":"no"
我仍然可以从源获取值.如果我有一个包含URL的字段,这可能是一个很好的用法.没有?
我做了一个小实验,在那里我有两个映射,一个字段设置为"store":"yes"
和对方"store":"no"
.
在这两种情况下,我仍然可以在我的查询中指定:
{"query":{"match_all":{}}, "fields":["my_test_field"]}
Run Code Online (Sandbox Code Playgroud)
我得到了同样的答案,回到了现场.
我认为,如果"store"
设置为"no"
它将意味着我无法检索特定字段,但必须得到整体_source
并在客户端解析它.
那么,什么好处是在有设置"store"
到"yes"
?仅当我"_source"
明确地从字段中排除字段时,它才有意义吗?
使用Elasticsearch 1.4.3
我正在构建一种"报告"系统.客户端可以选择并选择他们想要在结果中返回的字段.
在90%的情况下,客户端永远不会选择所有字段,所以我想我可以在映射中禁用_source字段以节省空间.但后来我了解到了
GET myIndex/myType/_search/
{
"fields": ["field1", "field2"]
...
}
Run Code Online (Sandbox Code Playgroud)
不返回字段.
所以我假设我必须使用"store":每个字段都为true.从我读到的内容来看,搜索速度会更快,但我想空间方面它与_source相同或者我们仍然可以节省空间吗?
我对Elasticsearch给出的结果感到困惑
我用一个简单的查询进行测试,
body: {
size: 100,
from: 0,
query: { match_all: {} },
fields: ["object"] <--- this is an object
}
Run Code Online (Sandbox Code Playgroud)
挺直的
我得到了点击. hits.total = 141380
但是 hits.hits.length = 49
如果我增加size
来1000
,我得到hits.hits.length = 129
而hits.total仍然是 hits.total = 141380
如果我不使用fields
,我得到所有的文档,并以可读的格式,但如果我指定字段我得到一个关键数组对象数组的数组(是搜索结果的复杂格式!)
有人可以解释为什么使用字段时会有所不同吗?我希望对象只有我要求的字段.