我使用Elassandra来搜索邮件,使用Cassandra来保存邮件,使用ElasticSearch来搜索这些邮件。
我的问题是,从ElasticSearch 6开始,我们不能在一个映射中使用多个类型。下面是我的映射:
"mappings": {
"mail__mail": {
"discover" : ".*",
"properties": {
"mailfrom": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
},
"ngram": {
"type": "text",
"analyzer": "edge_ngram_analyzer",
"search_analyzer": "edge_ngram_search_analyzer"
}
}
},
"subject": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword"
},
"ngram": {
"type": "text",
"analyzer": "edge_ngram_analyzer",
"search_analyzer": "edge_ngram_search_analyzer"
}
}
},
"date" : {
"type" : "date"
},
"folderid" : {
"type" : "text"
}
}
},
"mail__account" : {
"discover" : ".*",
"properties": {
"userId" : {
"type" : "Integer"
}
}
}
}如何使用ElasticSearch 6在多个cassandra表中搜索?
发布于 2018-09-18 23:20:42
由于使用ES6,您需要为每个索引映射一个表。搜索多个索引:
https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html
发布于 2018-09-20 19:36:09
正如@Alex所说,您需要为每个ES索引映射一个表,但是您可以为每个键空间创建多个ES索引,映射到不同的表。
您必须指定一个密钥空间名称作为索引设置。这是使用以下语法完成的:
curl -XPUT "http://localhost:9200/your_index/" -d '{
"settings" : { "keyspace" : "your_keyspace" },
"mappings" : {
"your_table" : {
"properties" : {
...
}
}
}
}https://stackoverflow.com/questions/52384138
复制相似问题