我如何组织我的ElasticSearch索引?

Seb*_*ber 9 java lucene indexing couchdb elasticsearch

我是ElasticSearch的新手,我试图用来帮助一个需要搜索引擎的酷炫创业公司.

我的用例是:

  • 网站的每个用户都有自己的个人空间,可以创建文本文档
  • 每个用户都可以与有限的人(朋友)共享或不共享其内容
  • 每个用户都可以创建公共内容
  • 用户可能来自不同的国家
  • 用户可以搜索除帖子之外的其他内容(例如,搜索其他用户)

我们的数据托管在CouchDB中.


1)我应该创建一个唯一索引,还是每个用户创建一个索引是一个好习惯? 我已经读过将所有内容放在同一个索引上并不是一个坏主意,这样你就可以在同一时间搜索许多不同的东西.但我注意到ES提供了搜索多个索引的能力,那么为什么不为每个用户创建一个索引呢?这是一个问题,因为最大的网址大小是有限的,索引名称是由网址或其他东西提供的?

2)我应该为每个json文档创建一个索引或类型吗? 我主要索引两种不同类型的文档:帖子和用户.如果我想能够在同一时间搜索它们,我想:

  • 为帖子创建索引和用户索引,并搜索它们?
  • 要创建一个索引和两个不同的类型,并搜索同一索引的两种类型?我真的不会有什么区别.

3)必须创建多条相同类型的河流是否正常? 例如,在CouchDB河上,它提供"过滤器"属性以仅接收与过滤器匹配的文档.因此,如果我想在两个单独的索引或类型上索引我的帖子和我的用户,我的第一次尝试将创建2个CouchDB河流,它们将具有不同的过滤器和不同的索引和/或类型.

是这样的吗?