在elasticsearch中索引文档时创建了哪些索引

时间:2013-05-08 15:48:43

标签: elasticsearch

如果我创建了它的第一个文档类型,或者放置了映射,是否为每个字段创建了一个索引?

显然,如果我将“index”设置为“已分析”或“未分析”,则该字段将被编入索引。

有没有办法存储一个字段,以便可以检索但从未搜索过?我想这会节省很多空间吗?如果我将其设置为“否”,这将节省空间吗?

我是否仍然可以通过此搜索,只需花费更多时间,还是完全无法搜索?

有些方法可以在插入一些文档后将字段编入索引并改变主意吗?

例如,我可能有一个映射:

{
 "book":{"properties":{
     "title":{"type":"string", "index":"not_analyzed"},
     "shelf":{"type":"long","index":"no"}
}}}

所以我希望能够按标题搜索,还能检索书籍所在的书架

1 个答案:

答案 0 :(得分:1)

index:no确实不会为该字段创建索引,因此可以节省一些空间。完成后,您将无法再搜索该特定字段。

在这种情况下也许有用的是了解_source字段,默认情况下返回该字段并包含您存储的所有字段。 http://www.elasticsearch.org/guide/reference/mapping/source-field/

关于你的第二个问题: 你不能半途而废。如果要稍后索引特定字段,则必须重新索引文档。

这就是为什么你可能想重新考虑设置索引:不等等。事实上,一个好的策略是不要为字段定义一个模式,除非你100%确定你需要一个非默认的例如,对于特定字段的分析器。否则ES将使用通常可用的默认值。