无法为 Cassandra 键空间创建 Elasticsearch 映射
Cannot create Elasticsearch mapping for Cassandra keyspace
目前,我正在试验 Elassandra(Elasticsearch 和 Cassandra 的组合)。我有一个带有表的现有 Cassandra 键空间,我想创建一个到 Elasticsearch 的映射,以便我可以使用 Elasticsearch API 到 search/filter 数据。
不幸的是,它不起作用,我不确定为什么会这样。
首先,我向 Elasticsearch HTTP 端点发出 PUT 请求以创建映射:
{
"settings": {
"keyspace": "my_keyspace"
},
"mapping": {
"sensordatatable": {
"discover": ".*"
},
"eventtable": {
"discover": ".*"
}
}
}
然后我得到这个作为答案:
{
"error": {
"root_cause": [
{
"type": "settings_exception",
"reason": "Cannot create index, underlying keyspace requires the NetworkTopologyStrategy."
}
],
"type": "settings_exception",
"reason": "Cannot create index, underlying keyspace requires the NetworkTopologyStrategy."
},
"status": 500
}
在这个 post (https://github.com/strapdata/elassandra/issues/44#issuecomment-253055846) 中有人也使用 SimpleStrategy
并且它似乎对他有用。有人可以解释一下为什么我必须使用 NetworkTopologyStrategy
吗?
自 Elassandra 5+ 起,仅支持 NetworkTopologyStrategy
,但不存在阻止支持 SimpleStrategy
的技术问题。 NetworkTopologyStrategy
通常是首选,因为它允许您扩展多个数据中心。
顺便说一下,您正在尝试为两个表创建索引。但是从第 6 版开始,Elasticsearch 每个索引只支持一种类型。如果您需要在同一个键空间中索引两个表,您可以创建两个单独的索引:
PUT sensordata
{
"settings": {
"keyspace": "my_keyspace"
},
"mapping": {
"_doc": {
"discover": ".*"
}
}
}
和:
PUT event
{
"settings": {
"keyspace": "my_keyspace"
},
"mapping": {
"_doc": {
"discover": ".*"
}
}
}
目前,我正在试验 Elassandra(Elasticsearch 和 Cassandra 的组合)。我有一个带有表的现有 Cassandra 键空间,我想创建一个到 Elasticsearch 的映射,以便我可以使用 Elasticsearch API 到 search/filter 数据。
不幸的是,它不起作用,我不确定为什么会这样。
首先,我向 Elasticsearch HTTP 端点发出 PUT 请求以创建映射:
{
"settings": {
"keyspace": "my_keyspace"
},
"mapping": {
"sensordatatable": {
"discover": ".*"
},
"eventtable": {
"discover": ".*"
}
}
}
然后我得到这个作为答案:
{
"error": {
"root_cause": [
{
"type": "settings_exception",
"reason": "Cannot create index, underlying keyspace requires the NetworkTopologyStrategy."
}
],
"type": "settings_exception",
"reason": "Cannot create index, underlying keyspace requires the NetworkTopologyStrategy."
},
"status": 500
}
在这个 post (https://github.com/strapdata/elassandra/issues/44#issuecomment-253055846) 中有人也使用 SimpleStrategy
并且它似乎对他有用。有人可以解释一下为什么我必须使用 NetworkTopologyStrategy
吗?
自 Elassandra 5+ 起,仅支持 NetworkTopologyStrategy
,但不存在阻止支持 SimpleStrategy
的技术问题。 NetworkTopologyStrategy
通常是首选,因为它允许您扩展多个数据中心。
顺便说一下,您正在尝试为两个表创建索引。但是从第 6 版开始,Elasticsearch 每个索引只支持一种类型。如果您需要在同一个键空间中索引两个表,您可以创建两个单独的索引:
PUT sensordata
{
"settings": {
"keyspace": "my_keyspace"
},
"mapping": {
"_doc": {
"discover": ".*"
}
}
}
和:
PUT event
{
"settings": {
"keyspace": "my_keyspace"
},
"mapping": {
"_doc": {
"discover": ".*"
}
}
}