1.一般查询
GET /test1/_search
{
“query”: {“match”: {
“field”:”value”
}}
}
多字段查询 multi match
{
“query”: {
“multi_match”: {
“query”: “test”,
“fields”: [“test_field”, “test_field1”]
}
}
}
范围查询
{
“query”: {
“range”: {
“age”: {
“gte”: 30
}
}
}
}
term查询
{
“query”: {
“term”: {
“test_field”: “test hello”
}
}
}
terms 查询
{
“query”: { “terms”: { “tag”: [ “search”, “full_text”, “nosql” ] }}
}
2.多索引查询
GET /test1,test/_search
{
“query”: {“match_all”: {}}
}
3.多条件组合查询 bool查询
4.filter与query 查询
{
“query”: {
“bool”: {
“must”: [
{
“match”: {
“join_date”: “2016-01-01”
}
}
],
“filter”: {
“range”: {
“age”: {
“gte”: 30
}
}
}
}
}
}
filter与query对比
filter,仅仅只是按照搜索条件过滤出需要的数据而已,不计算任何相关度分数,对相关度没有任何影响
query,会去计算每个document相对于搜索条件的相关度,并按照相关度进行排序
7.排序
9.boost 加权
10 match_phrase 了解什么是分词后的position slop的含义
11 ngram
使用 ngram将每个单词都进行进一步的分词切分,用切分后的ngram来实现前缀搜索推荐功能
{
“settings”: {
“analysis”: {
“filter”: {
“autocomplete_filter”: {
“type”: “ngram”,
“min_gram”: 1,
“max_gram”: 20
}
},
“analyzer”: {
“autocomplete”: {
“type”: “custom”,
“tokenizer”: “standard”,
“filter”: [
“lowercase”,
“autocomplete_filter”
]
}
}
}
}
}
12: fuzzy查询
13 :搜索建议
PUT /hot_word_4
{
“settings”: {
“number_of_replicas”: 0,
“number_of_shards”: 1,
“index”:{
“max_ngram_diff”:19
},
“analysis”: {
“analyzer”: {
“ngram_analyzer”:{
“type”:”custom”,
“tokenizer”:”keyword”,
“filter”:[
“ngram_filter”,
“lowercase”,
“pinyin_filter”
]
},
“edge_ngram_analyzer”:{
“type”:”custom”,
“tokenizer”:”keyword”,
“filter”:[
“edge_ngram_filter”,
“lowercase”,
“pinyin_filter”
]
},
“ik_smart_pinyin”:{
“type”:”custom”,
“tokenizer”:”ik_smart”,
“filter”:”pinyin_filter”
}
},
“filter”: {
“ngram_filter”: {
“type”: “ngram”,
“min_gram”: 2,
“max_gram”: 20
},
“edge_ngram_filter”: {
“type”: “edge_ngram”,
“min_gram”: 2,
“max_gram”: 20
},
“pinyin_filter”:{
“type”:”pinyin”,
“keep_full_pinyin”:false,
“keep_joined_full_pinyin”:true,
“keep_none_chinese_in_first_letter”:false,
“none_chinese_pinyin_tokenize”:false
}
}
}
},
“mappings”: {
“properties”: {
“title1”:{
“type”: “text”,
“analyzer”: “edge_ngram_analyzer”
},
“title2”:{
“type”: “text”,
“analyzer”: “ngram_analyzer”
}
}
}
}
