这是我第一次尝试使用elasticsearch,我试图获取必须与给定参数匹配的所有文档,并立即使用match _all字段。我的架构看起来像这样
{
"mappings":{
"product":{
"_all":{"enabled":true},
"properties":{
"category":{"type":"text"},
"brand":{"type":"text"},
"model":{"type":"text"},
"description":{"type":"text"}
}
}
}
}
所以,假设我想找到所有类似“手机”类别的产品,并且在任何属性中都有“完美”字样。我只使用
没有任何问题_search
"query": {
"match": {
"_all": "perfect"
}
}
但我无法找到将其与同时匹配类别相结合的解决方案。实现这一目标的最佳方法是什么?如果这很重要我正在使用官方的elasticsearch node.js插件。
答案 0 :(得分:1)
你必须使用bool查询 - 在这里你可以组合更多可以搜索的属性。请参阅elasticsearch文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
以下是doc中的示例:
GET _search
{
"query": {
"bool": {
"must": {
"match_all": {}
},
"filter": {
"term": {
"status": "active"
}
}
}
}
}