弹性搜索同时需要和必须进行的搜索

时间:2019-01-27 15:36:52

标签: node.js elasticsearch search full-text-search

我需要搜索必须和应该的产品。 查询示例:黑色牛仔裤。 我有性别,所以性别=男人是必须的。其余查询转到其他字段,例如标题和说明。有人可以帮我形成查询吗?

query: {
  bool: {
    should: [{
        match: {
          title: {
            query: search_term,
            boost: 5,
            analyzer: 'my_analyzer',
            minimum_should_match: '80%',
          }
        }
      },
      {
        match: {
          queries: {
            query: search_term,
            boost: 10,
            minimum_should_match: '90%',
          }
        }
      },
      {
        match: {
          gender: {
            query: gender,
            boost: 8,
            minimum_should_match: '100%',
          }
        }
      },
      {
        match: {
          color: {
            query: color,
            boost: 5,
            minimum_should_match: '100%',
          }
        }
      }
    ]
  }
}

我已经尝试过了,但是没有用。有人可以如何使其更好地用于搜索。

1 个答案:

答案 0 :(得分:0)

这应该满足您的要求:

GET <indexname>/_search
{

  "query": {
    "bool": {
      "must": 
        {
          "match_phrase": {
            "geneder": "men"
          }
        },
      "should": [
        {
          "match": {
            "title": "diesel"
          }
        },
        {
          "match": {
            "description": "Strechable denim jeans for men"
          }
        }],
        "minimum_should_match": 1
    }
  }
}