赞
踩
GET /student_info/_search
{
"query": {"match_all": {}}
}
GET /student_info/_search
{
"query":{
"match":{
"name":"张三"
}
}
}
GET /student_info/_search
{
"query":{
"match":{
"name":"张三"
}
},
"sort":[{
"age":"desc"
}]
}
GET /student_info/_search
{
"query":{"match_all": {}},
"_source": ["name","age"]
}
GET /student_info/_search
{
"query":{
"ids":{
"values":[11001,11002,11003]
}
}
}
POST /student_info/_mget
{
"ids":["11001","11002","11003"]
}
GET /_mget
{
"docs":[
{
"_index":"student_info",
"_id":"11001"
},
{
"_index":"teacher",
"_id":"1001"
}
]
}
GET /_msearch
{"index":"student_info"}
{"query":{"match_all":{}},"from":0,"size":4}
{"index":"teacher"}
{"query":{"match_all":{}}}
先对match里面的字段值进行分词,然后进行查询
“profession”: “计算机技术” :分词结果为 “计算机”、 “技术”,查询profession包含 "计算机"和 "技术"的记录
GET /student_info/_search
{
"query":{
"match":{
"profession":"计算机技术"
}
}
}
GET /student_info/_search
{
"query":{
"match":{
"profession":"计算机酒店"
}
}
}
“profession”: “计算机技术” :分词结果为 “计算机”、 “技术”,查询条件"operator": “and”,必须满足全部分词结果。
GET /student_info/_search
{
"query":{
"match":{
"profession": {
"query":"计算机技术",
"operator": "and"
}
}
}
}
“profession”: “计算机技术” :分词结果为 “计算机”、 “技术”,查询条件"operator": “or”,任意满足其一。
GET /student_info/_search
{
"query": {
"match":{
"profession": {
"query": "计算机酒店",
"operator": "or"
}
}
}
}
检索内容"我计算机技术" , 会拆词为“我”,“计算机”,“技术”匹配字段profession或desc字段中包含拆出来的词语的结果
GET /student_info/_search
{
"query":{
"multi_match": {
"query": "我计算机技术",
"fields": ["profession","desc"]
}
}
}
match_phrase短语搜索,要求所有的分词必须同时出现在文档中,同时位置必须紧邻一致。
GET /student_info/_search
{
"query": {
"match_phrase": {
"profession": "计算机科"
}
}
}
highlight 高亮查找
pre_tags 标签前缀
post_tags 标签后缀
fields 规定的字段,支持多个
注意:如果不声明前缀和后缀,那边默认使用 <em></em>
GET /student_info/_search
{
"query":{
"match":{
"name":"张三"
}
},
"highlight": {
"pre_tags":"<p class = \"text_high_light\">",
"post_tags": "</p>",
"fields": {
"name":{}
}
}
}
GET /student_info/_search
{
"query": {
"match_phrase_prefix": {
"name":"小小"
}
}
}
GET /student_info/_search
{
"query":{
"fuzzy":{
"name":"张"
}
}
}
term是关键词查询,参数类型type 一般都是是keyword , 精确查询,对查询的值不分词,直接进倒排索引去匹配。
term 精确查找(单个)
terms 精确查找(多个)
GET /student_info/_search
{
"query":{
"term":{
"name.keyword": "张三"
}
}
}
terms表示多条件并列,用大括号 [ ] 涵盖所查内容,类似于MySql中in方法
GET /student_info/_search
{
"query": {
"terms":{
"age":[19,20,21,22]
}
}
}
大于-gt,小于-lt,大于等于-gte,小于等于-lte
GET /student_info/_search
{
"query": {
"range":{
"age":{
"gte":19,
"lte":21
}
}
}
}
GET /student_info/_search
{
"query": {
"range":{
"birthday": {
"gte": "2001-06-15",
"lte": "2001-09-20"
}
}
}
}
GET /student_info/_search
{
"query":{
"range":{
"age":{
"from":19,
"to":21
}
}
}
}
GET /student_info/_search
{
"query": {
"range":{
"age":{
"from":19,
"to":21,
"include_lower":false,
"include_upper":false
}
}
}
}
注:?用来匹配任意字符,*用来匹配零个或者多个字符,主要用于-英文检索
GET /student_info/_search
{
"query":{
"wildcard":{
"english_name": "xiaoxiao*"
}
}
}
GET /student_info/_search
{
"query":{
"wildcard": {
"english_name": "li?i"
}
}
}
must的多条件都必须满足
must相当于MySQL条件中的AND
GET /student_info/_search { "query":{ "bool":{ "must":[{ "match":{ "name":"小小" } }, { "range":{ "age":{ "gt":19, "lte":22 } } } ] } } }
GET /student_info/_search { "query":{ "bool":{ "should":[{ "match":{ "name":"小小" } }, { "range":{ "age":{ "gt":19, "lte":22 } } }] } } }
GET /student_info/_search { "query":{ "bool":{ "should":[ { "match":{ "name":"小小" } }], "filter":{ "range":{ "age":{ "gt":21, "lte":22 } } } } } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。