我是 ElasticSearch 的新手,我试图用它来帮助一个需要搜索引擎的很酷的初创公司。
我的用例是:
- 网站的每个用户都有自己的个人空间,他可以在其中创建文本文档
- 每个用户可以与有限的人(朋友)分享或不分享其内容
- 每个用户都可以创建公共内容
- 用户可能来自不同的国家
- 用户可能会搜索帖子以外的其他内容(例如,搜索其他用户)
我们的数据托管在 CouchDB 中。
1)我应该创建一个唯一索引还是为每个用户创建一个索引是一种好习惯? 我读过将所有内容放在同一个索引上并不是一个坏主意,这样您就可以同时搜索许多不同的内容。但是我注意到 ES 提供了搜索多个索引的能力,那么为什么不为每个用户创建一个索引呢?这是一个问题,因为最大 url 大小是有限的,并且索引名称是由 url 或其他东西提供的?
2) 我应该为每个 json 文档创建一个索引或类型吗? 我主要有 2 种不同类型的文档要索引:帖子和用户。如果我希望能够同时搜索它们,我应该:
- 为帖子创建索引和为用户创建索引,并同时搜索它们?
- 要创建一个索引和 2 个不同类型,并搜索同一索引的两种类型?我真的不知道会有什么不同。
3)必须创建多条相同类型的河流是否正常? 例如,在 CouchDB 河上,它提供了一个“过滤器”属性来仅接收与您的过滤器匹配的文档。因此,如果我想在 2 个单独的索引或类型上索引我的帖子和我的用户,我的第一次尝试将是创建 2 个 CouchDB 河流,它们都将具有不同的过滤器和不同的索引和/或类型。
这是这样做的方法吗?