小编nly*_*lyn的帖子

MongoDB索引和$或运算符

对不起,如果之前有人询问过.我找不到明确的答案.如果我的查询包含$或运算符,我可以在mongodb索引上查询吗?我的查询看起来像这样:

    // find everything in the collection
    $cursor = $collection->find(array(
   '$or' => array( 
        array('album_id' => array(
            '$in' => $this->my_album_ids
            ),
        'type' => array(
            '$in' => array('like','comment')
            )
         ),
       array(
    'user_id' => (int)session_item('user_id'),
        'type' => 'message',
        'reply' => 'no'
         )
       ),
        'timestamp' => array('$gt' => (int)$since)))->sort(array('timestamp'=>-1))->skip($start)->limit($amount);  
Run Code Online (Sandbox Code Playgroud)

示例是在PHP中,但我想这适用于任何语言.

更新:

以下是我的索引,但上面的查询不使用它们.虽然看起来对我来说.

    $collection->ensureIndex(array(
        'album_id' => 1,
        'type' => 1,
        'timestamp' => -1,
    ));

    $collection->ensureIndex(array(
        'user_id' => 1,
        'type' => 1,
        'reply' => 1,
        'timestamp' => -1,
    ));
Run Code Online (Sandbox Code Playgroud)

这是我的解释()

Array
(
    [cursor] => BasicCursor
    [nscanned] …
Run Code Online (Sandbox Code Playgroud)

indexing mongodb operator-keyword

12
推荐指数
1
解决办法
8197
查看次数

ElasticSearch为每个用户分别编制索引

我想知道是否有数千个不同的索引是个坏主意?

我正在基于ElasticSearch向我的网络应用添加搜索页面.搜索页面允许用户通过过滤许多不同的索引标准(名称,位置,性别等)来搜索站点上的其他用户.这是相当直接的,只需要一个索引,其中包含该站点的每个用户的文档.

但是,我还想创建一个页面,用户可以在其中查看他们关注的所有其他用户的列表.我希望此页面具有搜索页面上可用的相同过滤选项.我想知道一个好的方法是为每个用户创建一个单独的索引,包含他们关注的每个用户的文档?

indexing elasticsearch

2
推荐指数
2
解决办法
1882
查看次数