在将couchbase与弹性搜索插件集成时,这更像是一个设计问题。我在之前的产品中使用了多租户的couchbase,我们遵循了我们在couchbase博客Single Couchbase Bucket for All Tenants上找到的第一个建议。
现在我们正在研究使用couchbase弹性搜索插件在couchbase数据上利用弹性搜索功能。通过couchbase弹性搜索插件文档(安装和设置),我意识到您只能将一个couchbase bucket
映射到一个elasticsearch index
。该文档可在此处Elasticsearch plugin configuration和Connecting to Cluster找到。现在在这种情况下,就像couchbase桶一样,所有文档(不管租户)都将驻留在同一个索引中。
现在这是我的问题。无论文件如何存储在couchbase中,我都希望elasticsearch能够为每个租户编制索引。我仍然很擅长使用这两个系统之间的集成,但我假设每个租户拥有单独的搜索索引(并且每个租户/索引都有许多不同类型的系统)可以肯定 1)提高每个租户的搜索性能 2)特定租户上可能具有最小数据集的特定搜索查询的性能不会受到同一索引上某些其他租户的大量数据集的影响(尽管不合理,假设租户之间的数据集合)相差50倍)
我想知道的是,我的担忧是否有效。将所有租户编入索引会影响搜索查询的性能吗?如果是这样,任何人都有任何解决方案如何使用couchbase弹性搜索插件实现这一目标?
所有的帮助和想法都很受欢迎!
答案 0 :(得分:1)
在使用插件时,没有简单的方法将来自单个Couchbase存储桶的数据与不同的ElasticSearch索引分开。您可以做的是在ElasticSearch中为不同的帐户提供不同类型,同时仍然将它们保持在同一索引中。这将提高搜索性能,并使CB和ES之间的帐篷管理保持一致。
要将CB中的不同文档映射到不同的ES类型,请使用传输插件的类型选择器功能,如下所述:http://docs.couchbase.com/admin/elastic/adv-usage.html (向下滚动到名为&#34的部分;设置文档类型")