match、match_phrase、term示例

  • 一、前提内容:
{
    "note":"东北大学在秦皇岛设立的分校。 东北大学秦皇岛分校是经教育部正式批准成立.",
    "value":"岛设fff"
}
{
    "note":"东北大学秦皇岛分校是经教育部正式批准成立,在东北大学统一规划下",
    "value":"岛设"
}

对应的mapping

{
  "ik-test": {
    "mappings": {
      "weibo": {
        "properties": {
          "note": {
            "type": "string",
            "analyzer": "ik"
          },
          "value": {
            "type": "string",
            "index": "not_analyzed",
            "analyzer": "ik"
          }
        }
      }
    }
  }
}

value不进行分析

{
    "query":{
        "match":{"note":"岛设"}
    },
    "highlight":{
        "pre_tags":["<tag1>","<tag2>"],
        "post_tags":["</tag1>","</tag2>"],
        "fields":{
            "note":{}
        }
    }
}

能匹配以上两个文档

{
    "highlight": {
          "note": [
            "东北大学在秦皇<tag1>岛</tag1>设立的分校。 东北大学秦皇<tag1>岛</tag1>分校是经教育部正式批准成立."
          ]
      }
}

{
    "highlight": {
          "note": [
            "东北大学秦皇<tag1>岛</tag1>分校是经教育部正式批准成立,在东北大学统一规划下."
          ]
      }
}
{
    "query":{
        "match_phrase":{"note":"岛设"}
    },
    "highlight":{
        "pre_tags":["<tag1>","<tag2>"],
        "post_tags":["</tag1>","</tag2>"],
        "fields":{
            "note":{}
        }
    }
}

则没有匹配任何内容

{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 0,
    "max_score": null,
    "hits": []
  }
}
{
    "query":{
        "term":{"note":"岛设"}
    },
    "highlight":{
        "pre_tags":["<tag1>","<tag2>"],
        "post_tags":["</tag1>","</tag2>"],
        "fields":{
            "note":{}
        }
    }
}

则没有匹配任何内容,因为“岛设”没有作为一个词被分词
但是“东北大学”是有作为词被分词的,可以匹配到

{
    "query":{
        "term":{"note":"东北大学"}
    },
    "highlight":{
        "pre_tags":["<tag1>","<tag2>"],
        "post_tags":["</tag1>","</tag2>"],
        "fields":{
            "note":{}
        }
    }
}
{
    "highlight": {
          "note": [
            "<tag1>东北大学</tag1>在秦皇岛设立的分校。 <tag1>东北大学</tag1>秦皇岛分校是经教育部正式批准成立."
          ]
      }
}

{
    "highlight": {
          "note": [
            "<tag1>东北大学</tag1>秦皇岛分校是经教育部正式批准成立,在<tag1>东北大学</tag1>统一规划下."
          ]
      }
}

对于value没有进行分析器分析的,是完整的内容

{
    "query":{
        "match":{"value":"岛设"}
    },
    "highlight":{
        "pre_tags":["<tag1>","<tag2>"],
        "post_tags":["</tag1>","</tag2>"],
        "fields":{
            "value":{}
        }
    }
}

匹配不到任何内容,但是使用term可以匹配一条

{
    "query":{
        "term":{"value":"岛设"}
    },
    "highlight":{
        "pre_tags":["<tag1>","<tag2>"],
        "post_tags":["</tag1>","</tag2>"],
        "fields":{
            "value":{}
        }
    }
}

匹配结果

{
  "took": 3,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 1.6931472,
    "hits": [
      {
        "_index": "ik-test",
        "_type": "weibo",
        "_id": "12",
        "_score": 1.6931472,
        "_source": {
          "note": "东北大学秦皇岛分校是经教育部正式批准成立,在东北大学统一规划下",
          "value": "岛设"
        }
      }
    ]
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,766评论 0 33
  • 工作坊的集智教育 我对小学英语工作坊的理解是:工作坊由学科业务骨干组成,以服务学校、...
    单芳芳阅读 473评论 0 0
  • “曾在我背包小小夹层里的那个人,陪伴我漂洋过海经过每一段旅程,隐形的稻草人守护我的青春,曾以为爱情能让未来只为一个...
    Mister柒年阅读 388评论 0 3
  • 老田丢了工作。 他跟公司最重要的客户吵了起来,到最后他急了,凑到车窗旁涨红脸粗着脖子咒对方全家死光。 那种时候,谁...
    尔乔阅读 628评论 0 0