query_string 语法查询

712 阅读1分钟

根据分词结果查询,查询参数进行分词

post 192.168.94.151:9200/blog/_doc/_search
{
    "query": {
        "query_string": {
        	# "default_field":"title",
            "query": "(ElasticSearch AND 入门) OR python"
        }
    }
}
{
    "query": {
        "query_string": {
        	"fields":["title","author"],
            "query": "(ElasticSearch AND 入门) OR python or xuhaixing"
        }
    }
}
POST /get-together/_search
{
  "query": {
    "query_string": {
      "default_field": "name",
      "query": "elasticsearch san",
      "default_operator": "AND"
    }
  }
}

query:匹配的查询内容

Elasticsearch默认查询_all,如果要制定查询字段,需要指定 "default_field":"title"

或者

"fields":["title","author"]

Elasticsearch默认返回匹配了任一指定关键词的文档(默认操作符是OR),如果需要匹配所有关键词,需要指定

"default_operator": "AND"

也可以在query里手动指定AND 或者 OR,同时也可以制定查询的字段

POST /get-together/_search
{
  "query": {
    "query_string": {
      "query": "name:elasticsearch AND name:san"
    }
  }
}

还可以使用-操作符在结果集中排除文档:

GET /get-together/_search
{
  "query": {
    "query_string": {
      "query": "tags:elasticsearch AND -members:Mike"
    }
  }
}