这才是我们一开始就需要的东东,这么久才出现,呜呜呜~~~

POST    http://10.0.0.220:9200/shop/_doc/_search

{
    "query": {
        "match": {
            "desc": "我喜欢你"
        }
    },
    "highlight": {
        "pre_tags": ["<span>"],
        "post_tags": ["</span>"],
        "fields": {
            "desc": {}
        }
    }
}



默认情况下,如果不加pre_tags、post_tags,则高亮关键字被<em></em>标签包括,可以采用pre_tags、post_tags进行自定义。
## "pre_tags": ["<span>"], 开始标签
## "post_tags": ["</span>"], 结束标签


拓展 - prefix-fuzzy-wildcard
 

prefix根据前缀去查询

POST     http://10.0.0.220:9200/shop/_doc/_search
{
    "query": {
        "prefix": {
            "desc": "哈哈"
        }
    }
}
 

fuzzy模糊搜索,并不是指的sql的模糊搜索,而是用户在进行搜索的时候的打字错误现象,搜索引擎会自动纠正,然后尝试匹配索引库中的数据。

POST     http://10.0.0.220:9200/shop/_doc/_search
{
  "query": {
    "fuzzy": {
      "desc": "imoov.coom"
    }
  }
}
# 或多字段搜索
{
  "query": {
    "multi_match": {
      "fields": [ "desc", "nickname"],
      "query": "imcoc supor",
      "fuzziness": "AUTO"
    }
  }
}

{
  "query": {
    "multi_match": {
      "fields": [ "desc", "nickname"],
      "query": "演说",
      "fuzziness": "1"
    }
  }
}

官文:https://www.elastic.co/guide/cn/elasticsearch/guide/current/fuzzy-match-query.html

 

wildcard占位符查询

  • ?:1个字符

  • *:1个或多个字符

    POST     http://10.0.0.220:9200/shop/_doc/_search
    {
      "query": {
        "wildcard": {
          "desc": "*是?"
        }
      }
    }
    {
    	"query": {
        	"wildcard": {
        		"desc": "人*"
        	}
    	}
    }

     

官文:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-wildcard-query.html

 

最后修改于 2020-04-07 16:55:14
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇