1

私は、Angular js、Node.js、MongoDB でエラスティック検索統合を使用して開発されたチャット アプリケーションを持っています。ユーザーが任意の組み合わせを入力できるチャットの検索機能を提供しました。オプションは、チャット メッセージ、ユーザー、および日付です。

だから私は、nodejsの助けを借りて、複数のフィールドの組み合わせでエラスティック検索データベースを検索したいと考えています。たとえば、1) username='mohan' および date='anydate' で検索し、2) username='mohan' および chatmessage='Hi there' とします。

したがって、両方の条件を満たす結果が得られるはずです。

mongoosastic を使用してこれをどのように達成できますか? 以下のクエリで試しました。しかし、それはOR条件で結果を出しているので、AND条件で欲しいです。

{
    "query": {
        "bool": {
            "should": [{
                "match": {
                    "feedMsg": "Hi there"
                }
            }, {
                "match": {
                    "userId": 'mohan'
                }
            }, {
                "range": {
                    "feedTime": {
                        "from": '27/10/2016',
                        "to": '27/10/2016'
                    }
                }
            }]
        }
    }
}
4

2 に答える 2

0

この形式を使用する必要があります。実際に機能します...

 var query = {
    query_string: {
      filtered: {
        query: {
          multi_match: {
            query: req.query.q, // or anything you will put here
          }
        },
        filter: {
          term: {
            'field': value
          }
        }
      }
    }
  }
于 2016-12-05T12:28:56.430 に答える