【问题标题】:Confusion between mappings and types in ElasticSearchElasticSearch 中的映射和类型之间的混淆
【发布时间】:2012-06-09 17:02:54
【问题描述】:

抱歉,我是 ElasticSearch 的新手。

http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping.html

此文档说您可以“在 twitter 索引中创建一个名为 tweet 的映射”

$ curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d '
{
    "tweet" : {
        "properties" : {
            "message" : {"type" : "string", "store" : "yes"}
        }
    }
}
'

正如有人在 ES IRC 频道上告诉我的那样,/twitter/tweet twitter=index, tweet=type

但是如果我执行以下操作会发生什么?

$ curl -XPUT 'http://localhost:9200/twitter/XXX/_mapping' -d '
{
    "YYY" : {
        "properties" : {
            "message" : {"type" : "string", "store" : "yes"}
        }
    }
}
'

如果我已经在 url 中提供了类型名称,为什么还要在内容中提供类型名称? 如果我在内容中提供类型名称,为什么不能只调用一些 url,例如:

$ curl -XPUT 'http://localhost:9200/twitter/_mapping' -d '

在阅读文档时,对我来说,它说“在 twitter 索引中创建一个名为 tweet 的映射”,这意味着 XXX 是映射名称,YYY 是类型名称。

因此,如果有一个映射名称,一个索引通常可以有很多“映射”

那么,到底XXX和YYY是/应该是一样的吗?


这不是我从文档中理解的,而是我认为的: - 一个索引可以有类型 - 类型有一个映射 因此,我们不会像文档中所说的那样创建映射,而是创建一个具有映射的类型,或者我们更新类型的映射编号?

在我不想使用任何类型的索引上(所有被索引的文档都是相同类型的数据),但我想为该索引创建一个映射,我应该通过只创建一个来处理它吗?类型及其映射,并始终使用该类型(例如在 CouchDB 河中)?

谢谢

【问题讨论】:

    标签: java json solr lucene elasticsearch


    【解决方案1】:

    在当前版本的 elasticsearch 搜索 (0.19.4) 中,忽略“YYY”并将映射分配给“XXX”类型。

    确实,您可以将创建映射视为创建类型。在内部,类型是根据映射表示的,文档只是反映了这种行为。如果所有记录都具有相同的类型,则应将索引视为只有一种类型的索引。类型用于“命名空间”不同类型的记录,因此它是强制性的。 id 本身并不能唯一标识一条记录。要在elasticsearch中识别一条记录,你需要有index、type和id。例如,这就是为什么 type 是 get 操作的必需参数的原因。对于其他操作,如果没有指定类型,elasticsearch 假定您要对所有类型的记录执行操作。

    注意,也可以随时通过添加新类型的记录来动态创建类型。因此,只有一种类型的索引是没有第二种类型的索引

    【讨论】:

    • 不确定您是否知道,但可以在索引创建期间设置所有映射,并且它具有更直观的 API。请参阅此页面的映射部分:elasticsearch.org/guide/reference/api/…
    • 是的,我注意到了。但实际上我想创建一条 CouchDB 河,但我认为我不能用 CouchDB 河创建索引 + 映射。我想我应该先创建索引 + 映射(1 步或 2 步),然后再创建河流。
    • 我的另一个问题呢?如果我的所有文档在我的索引中都属于同一类型,我应该如何处理该索引的映射?
    • 我已经添加了这个问题的答案。如果需要任何额外的说明,请告诉我。
    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多