带过滤器的 Elasticsearch simple_query_string

use*_*898 3 querydsl elasticsearch

我有以下查询,该查询查询(simple_query_string)并且也确实提出建议,但在执行任何操作之前,我想使用术语过滤数据。

{
    "query": {
      "simple_query_string": {
        "fields": ["merchant.basic"],
        "query": "(sterbuck|sterbuck*)",
        "default_operator": "and"
      }
    },
    "suggest": {
      "text": "sterbuck",
      "phraseSuggestion": {
        "phrase": {
          "field": "merchant.basic",
          "direct_generator": [{
            "field": "merchant.basic",
            "suggest_mode": "popular",
            "min_word_length": 3,
            "prefix_length": 2
          }]
        }
      }
    },
    "size": 4,
    "_source": ["merchant"]
  }
Run Code Online (Sandbox Code Playgroud)

先感谢您。

use*_*898 7

{
   "query":{
      "bool":{
         "must":{
             "simple_query_string": {
            "fields": ["merchant.basic"],
            "query": "(star|star*)",
            "default_operator": "and"
          }
         },
         "filter":{
            "term":{
               "name":"michael"
            }
         }
      }
   },
   "suggest": {
       "text": "sterbuck",
          "phraseSuggestion": {
            "phrase": {
              "field": "merchant.basic",
              "direct_generator": [{
                "field": "merchant.basic",
                "suggest_mode": "popular",
                "min_word_length": 3,
                "prefix_length": 2
              }]
            }
          }
    },
    "size": 4,
    "_source": ["merchant"]
}
Run Code Online (Sandbox Code Playgroud)