相关疑难解决方法(0)

为什么我需要"存储":弹性搜索中的"是"?

我真的不明白为什么核心类型链接它在属性描述中说(例如,对于数字):

  1. store - 设置为yes以在索引中存储实际字段,设置为no以不存储它.默认为no(注意,JSON文档本身已存储,可以从中检索)
  2. index - 如果不应将值编入索引,则设置为no.在这种情况下,store应设置为yes,因为如果它没有被索引并且没有存储,则与它无关

这两个大胆的部分似乎相互矛盾.如果"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

63
推荐指数
2
解决办法
3万
查看次数

Elasticsearch商店字段vs _source

使用Elasticsearch 1.4.3

我正在构建一种"报告"系统.客户端可以选择并选择他们想要在结果中返回的字段.

在90%的情况下,客户端永远不会选择所有字段,所以我想我可以在映射中禁用_source字段以节省空间.但后来我了解到了

GET myIndex/myType/_search/
{
    "fields": ["field1", "field2"]
    ...
}
Run Code Online (Sandbox Code Playgroud)

不返回字段.

所以我假设我必须使用"store":每个字段都为true.从我读到的内容来看,搜索速度会更快,但我想空间方面它与_source相同或者我们仍然可以节省空间吗?

elasticsearch

10
推荐指数
5
解决办法
2万
查看次数

当field是一个对象时,elasticsearch不会返回所有匹配

我对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

如果我增加size1000,我得到hits.hits.length = 129

而hits.total仍然是 hits.total = 141380

如果我不使用fields,我得到所有的文档,并以可读的格式,但如果我指定字段我得到一个关键数组对象数组的数组(是搜索结果的复杂格式!)

有人可以解释为什么使用字段时会有所不同吗?我希望对象只有我要求的字段.

javascript elasticsearch

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

标签 统计

elasticsearch ×3

javascript ×1