我有一个使用弹性搜索集成在Angular js,Node.js,MongoDB中开发的聊天应用程序。我为聊天提供了搜索功能,用户可以输入任意组合。选项包括聊天消息,用户和日期。
所以我想在nodejs的帮助下搜索弹性搜索数据库,并使用多个字段组合。例如,1)用username =' mohan'进行搜索和日期=' anydate',2)用户名=' mohan'和chatmessage ='你好'。
所以结果应该满足两个条件。
我们如何使用mongoosastic实现这一目标?我试过下面的查询。但是它给出了OR条件的结果,我想要AND条件。
{
"query": {
"bool": {
"should": [{
"match": {
"feedMsg": "Hi there"
}
}, {
"match": {
"userId": 'mohan'
}
}, {
"range": {
"feedTime": {
"from": '27/10/2016',
"to": '27/10/2016'
}
}
}]
}
}
}
答案 0 :(得分:0)
我找到了解决方案。使用必须的Bool查询对我有用。
{
"bool" : {
"must" : [],
"should" : [],
"must_not" : [],
"filter": []
}
}