我正在使用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表中搜索?
答案 0 :(得分:0)
从ES6开始,您需要为每个索引映射1个表。 搜索多个索引:
https://www.elastic.co/guide/en/elasticsearch/reference/current/multi-index.html
答案 1 :(得分:0)
如@Alex所说,您需要为每个ES索引映射1个表,但是您可以为每个键空间创建多个ES索引,映射到不同的表。
您必须指定一个键空间名称作为索引设置。这是通过以下语法完成的:
curl -XPUT "http://localhost:9200/your_index/" -d '{
"settings" : { "keyspace" : "your_keyspace" },
"mappings" : {
"your_table" : {
"properties" : {
...
}
}
}
}