美文网首页
es的match和match_phrase的对比

es的match和match_phrase的对比

作者: Britney_z | 来源:发表于2019-12-19 09:34 被阅读0次

    最近使用了es的match和match_phrase,简单的做了一个对比

    首先看看 ”我好帅“ 怎么进行分词?并将 我好帅 存入es

    GET _analyze

    {

      "analyzer": "ik_max_word",

      "text": "我好帅"

    }

    {

      "tokens": [

        {

          "token": "我好",

          "start_offset": 0,

          "end_offset": 2,

          "type": "CN_WORD",

          "position": 0

        },

        {

          "token": "我",

          "start_offset": 0,

          "end_offset": 1,

          "type": "CN_WORD",

          "position": 1

        },

        {

          "token": "好",

          "start_offset": 1,

          "end_offset": 2,

          "type": "CN_WORD",

          "position": 2

        },

        {

          "token": "帅",

          "start_offset": 2,

          "end_offset": 3,

          "type": "CN_WORD",

          "position": 3

        }

      ]

    }

    现在搜索 我好  ,会被分词为  我好 、我、好  三个分词,则都在分词库匹配上了。

    match:只要匹配上任何一个分词,则返回

    match_phrase:必须全部匹配,还要索引位置相邻

    例如 现在搜 我帅,我 和 帅 都匹配上了,但是索引位置不相邻,所以不会返回数据

    GET /kehujbxx_index_v1/kehujbxx_info/_search

    {

      "query": {

        "bool": {

          "should": [

            {

              "match_phrase": {

                "xingming": {

                  "query": "我帅",

                "analyzer":"ik_max_word"

                }

              }

            }

          ]

        }

      }

    }

    相关文章

      网友评论

          本文标题:es的match和match_phrase的对比

          本文链接:https://www.haomeiwen.com/subject/byeunctx.html