gpt4 book ai didi

node.js - 具有两个字段和条件的 mongoosastic 搜索

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:56 26 4
gpt4 key购买 nike

我有一个用 Angular js、Node.js、MongoDB 开发的聊天应用程序,具有 Elasticsearch 集成。我提供了聊天搜索功能,用户可以输入任意组合。选项包括聊天消息、用户和日期。

所以我想在nodejs的帮助下通过多个字段组合在elasticsearch数据库中进行搜索。例如,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'
}
}
}]
}
}
}

最佳答案

我找到了解决方案。 Bool Query with Must 对我有用。

{
"bool" : {
"must" : [],
"should" : [],
"must_not" : [],
"filter": []
}
}
  1. must- 所有这些子句都必须匹配。相当于 AND。
  2. must_not - 所有这些子句都不能匹配。相当于 不是。
  3. should - 这些子句中至少有一个必须匹配。相当于或。
  4. 过滤器 - 必须匹配但以非计分方式运行的子句,过滤模式。

关于node.js - 具有两个字段和条件的 mongoosastic 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40280129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com