【发布时间】:2011-08-21 02:35:48
【问题描述】:
我正在构建一个系统,其中用户具有特定的动态角色,使他们能够访问某些资源(即元文档)。这些文档 META 使用 Elastic Search 进行索引。
我可以毫无困难地进行查询。
现在我需要考虑角色: 如果我在索引文档时添加允许查看给定文档的角色,我将过滤我的查询以匹配特定角色并返回结果。
这很好,但如果角色发生变化,我需要重新索引我的所有文档。
如果我在接收到弹性搜索结果时在服务器端动态地执行它,它可能也可以工作,但会消耗一些 CPU 和带宽,另外它可能是方面搜索和分页的问题。
你会如何解决这样的问题?什么是最合适的解决方案?
【问题讨论】:
-
有趣的问题!我想这是执行将全文搜索与关系方面相结合的查询的更普遍问题的一个具体案例。当然,一些关系数据库已经支持快速全文搜索。
-
角色多久更换一次?索引需要多长时间?重新编制索引会影响搜索吗?
-
实际上,在我看到 ES 支持 Bulk insert 以加快索引速度之后,重新索引将是一个可行的解决方案,因为角色更改不那么频繁。
标签: algorithm architecture full-text-search elasticsearch