elasticsearch - Elasticsearch查询别名并通过路由给出部分结果

标签 elasticsearch

为了为我的项目创建 Multi-Tenancy 架构。
我创建了一个带有索引“tenant”的elasticsearch集群

"tenant" : { "some_type" : { "_routing" : { "required" : true, "path" : "tenantId" },



现在,

我还创建了一些别名-
"tenant" : {
"aliases" : {
  "tenant_1" : {
    "index_routing" : "1",
    "search_routing" : "1"
  },
  "tenant_2" : {
    "index_routing" : "2",
    "search_routing" : "2"
  },
  "tenant_3" : {
    "index_routing" : "3",
    "search_routing" : "3"
  },
  "tenant_4" : {
    "index_routing" : "4",
    "search_routing" : "4"
  }

我添加了一些数据,其中tenantId = 2

毕竟,我尝试查询“tenant_2”,但只得到部分结果,而查询“tenant”索引则直接返回完整结果。

为什么?

我确定路由应该查询tenantId = 2所在的文档的所有分片。

最佳答案

在elasticsearch中创建别名后,您只需使用别名即可执行所有操作。索引,更新或搜索。

尝试再次为数据重新建立索引,并检查是否可能(如果是测试索引,希望如此)。

删除所有索引。

curl -XDELETE 'localhost:9200/' # Warning:!! Dont use this in production.
                                  Use this command only if it is test index.

再次创建索引。再次创建别名。对别名进行所有索引,搜索和删除操作。甚至数据的导入也应该通过别名来完成。

关于elasticsearch - Elasticsearch查询别名并通过路由给出部分结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20592627/

相关文章:

python - 使用Python Flask将HTML页面与Elasticsearch连接

elasticsearch - Elasticsearch集群运行状况间歇性地在 'GREEN'和 'YELLOW'之间摆动

elasticsearch - 匹配词组查询未按预期工作

logging - 为 logstash 中的新字段设置 Elasticsearch Analyzer

node.js - Elasticsearch 在 Node js 中使用滚动显示所有结果

elasticsearch - Logstash 配置 : how to call the partial-update API from ElasticSearch output plugin?

ruby-on-rails - 如何从Rails的elasticsearch中删除不存在的文档?

elasticsearch - 在Elasticsearch查询中传递 “-”

ruby-on-rails - 限制 Rails 中的 Elasticsearch 结果计数

mongodb - 如何在mongodb和elasticsearch之间同步?