无法为cassandra键空间创建elasticsearchMap

nx7onnlm  于 2021-06-14  发布在  Cassandra
关注(0)|答案(1)|浏览(469)

目前,我正在尝试elassandra(elasticsearch和cassandra的组合)。在那里,我有一个带有表的现有cassandra键空间,并希望创建到elasticsearch的Map,以便可以使用elasticsearch api来搜索/过滤数据。
不幸的是,它不工作,我不知道为什么这是。
首先,我向elasticsearch http端点发出put请求以创建Map:

{
    "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
}

在这个岗位上(https://github.com/strapdata/elassandra/issues/44#issuecomment-253055846)也有人使用 SimpleStrategy 这似乎对他有用。有人能解释我为什么要用这个吗 NetworkTopologyStrategy ?

kyxcudwk

kyxcudwk1#

从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": ".*"
        }
    }
}

相关问题