美文网首页
es6.2.4学习----使用copy_to实现_all

es6.2.4学习----使用copy_to实现_all

作者: 轻易流逝 | 来源:发表于2018-06-19 15:30 被阅读0次

    _all:一个把其它字段值 当作一个大字符串来索引的特殊字段。
    当你不知道所需查询字段,在文档中的位置时使用_all字段是非常适合的。

    曾经在es5.6.3版本中使用过_all字段查询相关文档,这次在es6中我又一次尝试使用这个字段,结果这个_all被禁止了。

    PUT ik_demo
    {
      "mappings": {
        "doc":{
          "_all": {"enabled": true},
          "properties": {
            "title":{
              "type": "text"
            },
            "content":{
              "type": "text"
            },
            "author":{
              "type": "text"
            }
          }
        }
      }
    }
    

    结果


    _all被取消了

    这个字段被禁用了,但是我们可以自定义_all字段。
    使用copy_to参数实现_all功能:

    PUT ik_demo
    {
      "mappings": {
        "doc":{
          "properties": {
            "title":{
              "type": "text",
              "copy_to": "allProp"
            },
            "content":{
              "type": "text",
              "copy_to": "allProp"
            },
            "author":{
              "type": "text",
              "copy_to": "allProp"
            },
            "allProp":{
              "type": "text"
            }
          }
        }
      }
    }
    

    索引几条数据

    POST ik_demo/doc
    {
      "title":"程序员是怎样炼成的",
      "content":"首先...然后...坚持...最终...",
      "author":"码界小白"
    }
    POST ik_demo/doc
    {
      "title":"猿哥最棒",
      "content":"瞎比比",
      "author":"程序员鼓励师"
    }
    POST ik_demo/doc
    {
      "title": "世上仅有",
      "content": "无敌程序员",
      "author": "猿哥"
    }
    

    然后直接查询allProp字段就可以了。

    GET ik_demo/_search
    {
      "query":{
        "match": {
          "allProp": "程序员"
        }
      }
    }
    

    查询结果:


    查询结果

    所有含有"程序员"的文档均被搜索到了。

    相关文章

      网友评论

          本文标题:es6.2.4学习----使用copy_to实现_all

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