Elasticsearch 学习 初步总结

来源:互联网 发布:人力资源公司网站源码 编辑:程序博客网 时间:2024/05/18 01:47

学习网站  http://learnes.net/

1、词条查询 trem

      它仅匹配在给定字段中含有该词条的文档,而且是确切的、未经分析的词条。
{
    "query": {
        "term": {
            "title": "crime"
        }
    }
}
2、多词条查询terms
     多词条查询允许匹配那些在内容中含有某些词条的文档。词条查询允许匹配单个未经分析的词条
    ,多词条查询可以用来匹配多个这样的词条。
{
    "query": {
        "trems": {
            "tags": [
                "novel",
                "book"
            ],
            "minimum_match": 1  //至少有1个词条应该匹配。
        }
    }
}
3、批量索引
     1)在索引中增加或更换现有文档(index)。
     2)从索引中移除文档(delete)。
     3)当索引中不存在其他文档定义时,在索引中增加新文档(create),如果文档已存在报错。
     参考url:http://learnes.net/data/bulk.html
bulk API可以帮助我们同时完成执行多个请求,比如:create,index, update以及delete。当你在处理类似于log等海量数据的时候,你就可以一下处理成百上千的请求,这个操作将会极大提高效率。
bulk的请求主体的格式稍微有些不同:
{ action: { metadata }}\n
{ request body        }\n
{ action: { metadata }}\n
{ request body        }\n
...
这种格式就类似于一个用"\n"字符来连接的单行json一样。下面是两点注意事项:
每一行都结尾处都必须有换行字符"\n",最后一行也要有。这些标记可以有效地分隔每行。
这些行里不能包含非转义字符,以免干扰数据的分析 — — 这也意味着JSON不能是pretty-printed样式。
例如:
POST /_bulk
{ "delete": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "create": { "_index": "website", "_type": "blog", "_id": "123" }}
{ "title":    "My first blog post" }
{ "index":  { "_index": "website", "_type": "blog" }}
{ "title":    "My second blog post" }
{ "update": { "_index": "website", "_type": "blog", "_id": "123", "_retry_on_conflict" : 3} }
{ "doc" : {"title" : "My updated blog post"} } 
4、分页和结果集大小
     1)from:该属性指定我们希望在结果中返回的起始文档。默认值为0。
     2)size:该属性指定了一次查询中返回的最大文档数,默认值为10.
     例:
{
    "from": 9,
    "size": 20,
    "query": {
        "query_string": {
            "query": "title: crime"
        }
    }
}
5、match_all 查询
     他使我们能够匹配索引中所有文件 ==  select *  from  table
     例:{
    "query": {
        "match_all": {}
    }
}
6、范围查询
     gte >=    ;  gt >  ; lte  <=  ; lt  <
     例:
      {
    "query": {
        "range": {
            "year": {
                "gte": 1700,
                "lte": 1900
            }
        }
    }
}
7、布尔查询
     must:被它封装的布尔查询必须被匹配,文档才能返回。== n 个 and
     {
          "query": {
            "bool": {
              "must": [
                { "match": { "address": "mill" } },
                { "match": { "address": "lane" } }
              ]
            }
          }
        } 
8、查询结果的过滤
    查询索引中的某个子集,这就要用到过滤器了。


     

     
0 0
原创粉丝点击