• 37.query string、_all metadata


    主要知识点

    1query string基础语法

    2_all metadata的理解

       

    一、query string基础语法

    1GET /test_index/test_type/_search?q=test_field:test

    查询test_field这个field(字段)中包含关键字test的所有数据。

    2GET /test_index/test_type/_search?q=+test_field:test

    "+"的意思就是必须包含后面的关键字test,其实加不加这个"+"号都是一样的

    3GET /test_index/test_type/_search?q=-test_field:test

    "-"的意思就是必须不包含后面的关键字test

       

    二、_all metadata的原理和作用

    GET /test_index/test_type/_search?q=test

    可以使用这种语法直接搜索所有的field,任意一个field包含指定的关键字就可以搜索出来。这种语法就用到了_all metadata的原理。

    在es建立索引的时候,当我们插入一条document,它里面包含了多个field,此时,es会自动将多个field的值,全部用字符串的方式串联起来,变成一个长的字符串,作为_all field的值,然后分词后建立倒排索引。如果在搜索的时候没有指定对某个特定field进行搜索,就默认搜索_all field的值,其中是包含了所有field的值。

    举个例子,假设有一个document的值如下:

    {

    "name": "jack",

    "age": 26,

    "email": "jack@sina.com",

    "address": "guamgzhou"

    }

    es中的_all metadata的值就是 "jack 26 jack@sina.com guangzhou",同时对该字符串进行分词后建立对应的倒排索引。

  • 相关阅读:
    「SOL」工厂选址(BZOJ)
    「NOTE」数论小札
    Flask实现简单的群聊和单聊
    python基础总结
    基于Flask和百度AI实现与机器人对话
    django创建路径导航
    django中权限控制到按钮级别
    django中非菜单权限的归属
    MongoDB的增删改查
    jQuery于js的区别和联系
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8468543.html
Copyright © 2020-2023  润新知