前缀匹配,通配符匹配,正则匹配

时间:2025-02-15 08:06:27

1、前缀匹配

根据检索关键字的前缀查询

GET /forum/_search
{
  "query": {
    "prefix": {
      "content": {
        "value": "sp"
      }
    }
  }
}

prefix query不计算relevance score,前缀越短,要处理的doc越多,性能越差,尽可能用长前缀搜索

2、通配符搜索

GET /forum/_search
{
  
  "query": {
    "wildcard": {
      "": {
        "value": "*A-*"
      }
    }
  }
}

3、正则匹配


GET /forum/_search
{
  "query": {
    "regexp": {
      "title": "C[0-9].+"
    }
  }
}

注意:

(1)上述三种检索方式都需要扫描完整个的倒排索引,性能差

(2)检索的field要是没有分词的