应用match_phrase和filter

时间:2018-11-12 17:34:11

标签: elasticsearch

使用Elastic Search 6.4.2。我想使用match_pharse从索引中检索结果。同样,我需要为此应用过滤器。任何解决方案。我尝试了以下查询

{
  "query": {
    "bool": {
      "should": 
        {
          "match_phrase": {
          "title": "bike riding"
          }}

    }
  }}

但是当我使用match_pharse时,我需要传递字段以获取结果。我正在共享需要编辑的映射和查询。我可以使用match_phrase进行查询的任何帮助。

映射:

{
  "mapping": {
    "doc": {
      "properties": {
        "content": {
          "type": "text",
          "store": true,
          "analyzer": "my_analyzer"
        },
        "description": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "domain": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "host": {
          "type": "keyword",
          "store": true
        },
        "keywords": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword",
              "ignore_above": 256
            }
          }
        },
        "seed": {
          "type": "keyword",
          "store": true
        },
        "title": {
          "type": "text",
          "store": true,
          "analyzer": "my_analyzer"
        },
        "url": {
          "type": "text",
          "store": true
        }
      }
    }
  }
}`

查询: 如何将match_phrase添加到下面的

{
    "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "bike riding"
                }
            },
            "filter" : {
                "term" : { "seed" : "sports" }
            }
        }
    }
}

1 个答案:

答案 0 :(得分:1)

下面的查询是您想要的。

注意如何在"\"bike riding\""周围加上引号

POST <your_index_name>/_search
{
  "query": {
        "bool" : {
            "must" : {
                "query_string" : {
                    "query" : "\"bike riding\""
                }
            },
            "filter" : {
                "term" : { "seed": "sports" }
            }
        }
    }

}

让我知道是否有帮助!