2016-09-15 3 views
0

この問題が発生します。ElasticSearch JSは、フィルタ処理しようとするとすべてのドキュメントを返します。私は2つのドキュメントを持っていますが、それらのフィルタと一致するものは1つだけですが、ESはすべてのドキュメントを返します。マッピングは作成されず、2つのドキュメントしか作成されません。私はElasticSearch JSクエリは、フィルタ処理の代わりにすべてのドキュメントを返します。

は、私はあなたがあなたの検索パラメータのタイプミスを持つノードJS

client.search({ 
    index: "yojuego", 
    type: "user", 
    query: { 
     "filtered": { 
     "filter": { 
      "bool": { 
      "must": [ 
       { "term": { "userid": "123456789" } }, 
       { "term": { "type": "yojuego" } } 
      ] 
      } 
     } 
     } 
    } 
    }, (error, response, status) => { 
    if (error) { 
     res.json(400, err); 
    } 
    else { 
     res.json(200, response.hits.hits); 
    } 
    }); 
}); 

答えて

1

を使用しています...何をすべきかを知らない、あなたはあなたのquerybodyパラメータに同封する必要があります。

client.search({ 
    index: "yojuego", 
    type: "user", 
    body: {     <--- add this 
    "query": { 
     "filtered": { 
     "filter": { 
      "bool": { 
      "must": [ 
       { "term": { "userid": "123456789" } }, 
       { "term": { "type": "yojuego" } } 
      ] 
      } 
     } 
     } 
    } 
    } 
    }, (error, response, status) => { 
    if (error) { 
     res.json(400, err); 
    } 
    else { 
     res.json(200, response.hits.hits); 
    } 
    }); 
}); 
+0

ありがとうございました。それは完全に動作します。なぜid(または可能であれば)という名前のフィールドがあれば動作しないのか知っていますか?最後の例では、 "userid"を "id"に置き換えます。ありがとう –

+0

それは動作しない理由はありません。何があなたをそう思わせたのですか? – Val

+0

もう一度、私は再び問題に直面していることを知っています、今、それはどんなドキュメントも取り込んでいません...それはもはや突然動いていないようです。私は非常に混乱しています... –

関連する問題