ES的_source字段不存在,并且Cassandra和ES

时间:2018-12-07 14:14:21

标签: elasticsearch cassandra elassandra

这个问题也是here

我的Elassandra 6.2.3.7有3个节点的集群。 我已经在Cassandra中创建了键空间和表,然后通过 PUT API 在ES中创建了相应的索引。

我也将gc_grace_seconds修改为21600,结构如下:

CREATE KEYSPACE mykeyspace WITH replication = {'class': 'NetworkTopologyStrategy', 'DC1': '1'}  AND durable_writes = true;

CREATE TABLE mykeyspace .mytable(
    event_datetime timestamp,
    agent text,
    f1 text,
    ....
    PRIMARY KEY (f1, event_datetime)
) WITH CLUSTERING ORDER BY (event_datetime DESC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
    AND comment = ''
    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 21600
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';
CREATE CUSTOM INDEX elastic_mytable_idx ON mykeyspace .mytable () USING 'org.elassandra.index.ExtendedElasticSecondaryIndex';

在使用NodeJS cassandra-driver将一些数据插入Cassandra后,我注意到在ES索引中有太多关于Cassandra的文档。这是由于ES中的某些文档以某种方式为“空”引起的,存在的唯一字段是_id_index_type_score,而没有{ {1}}包含我的数据的字段。

没有_source字段的文档示例

_source

我也向卡桑德拉查询了.... "hits": { "total": 4, "max_score": 10.738641, "hits": [ { "_index": "myindex", "_type": "mytype", "_id": """["p1",1543540357000]""", "_score": 10.738641 }, ... ,结果是正确的,里面没有奇怪的条目。

_id之后,这些空文档消失了,但是,经过一个晚上的工作,空文档又回来了。

用例: 一个nodejs程序将执行以下操作:rebuild_index来自Cassandra的数据,read代表Cassandra的记录,delete代表Cassandra的数据。

这种行为是否可能是由紧致过程引起的?

什么会导致这种行为?

问题可能类似于#226

0 个答案:

没有答案