【发布时间】: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